¿Por qué 29 A en el nuevo error ilo de HP?

0

En la nueva vulnerabilidad de omisión de autenticación:

enlace

29 "A" es necesario.

P: ¿Pero por qué? ¿No son los buffers / variables usualmente el poder de 2? así que 16, 32, 64, etc.

(solo para saber más cuando estoy borrando una aplicación, ¿cuántas "A" debo usar en general :) ya que estaba usando la potencia de 2 y la potencia de 2 + 1 hasta el momento, pero este 29 Las A's ni siquiera encajaban con el poder de 2 - 1)

    
pregunta KollarA 13.07.2018 - 14:44
fuente

1 respuesta

2

El autor del código lo escribió, por lo que lo más probable es que los valores máximos para el campo fueran 28, 29 lo rompe. Como dijo @gameOver, puede definir una variable para que tenga la longitud que desee.

Aquí hay un ejemplo realmente tonto de python de un desbordamiento de búfer, es simplemente tonto, pero muestra cómo se define un límite arbitrario y luego se rompe cuando se excede.

#!/usr/bin/env python

import sys
if len(sys.argv) != 2:
    print("ERROR: Must supply 1 argument.") 
    quit()
else:
    userInput=sys.argv[1]

fixedBuff=[None]*10
j=0
for i in userInput:
    print("Appending: " + str(i))
    fixedBuff[j]=i
    j=j+1   

Si ejecuta eso y aumenta su argumento, finalmente se rompe. Muy simplista, pero ayuda a mostrar cómo funciona un desbordamiento de búfer.

    
respondido por el Joe M 13.07.2018 - 15:18
fuente

Lea otras preguntas en las etiquetas