Perchè 29 A nel nuovo bug HP ilo?

0

Nel nuovissimo bypass di autenticazione exploit:

link

29 "A" necessari.

Q: Ma perché? non sono buffer / variabili di solito la potenza di 2? quindi 16, 32, 64, ecc.

(solo per sapere di più quando sto sfogliando un'applicazione, quanti "A" dovrei usare in generale :) visto che stavo usando la potenza di 2 e la potenza di 2 + 1 finora, ma questo 29 A non si adatta nemmeno alla potenza di 2 - 1)

    
posta KollarA 13.07.2018 - 14:44
fonte

1 risposta

2

L'autore del codice lo ha scritto in modo che i valori massimi per il campo fossero 28 molto probabilmente, 29 lo spezza. Come @gameOver ha detto che puoi definire una variabile come qualsiasi lunghezza tu voglia.

Ecco un esempio pitone davvero stupido di un buffer overflow, è solo stupido ma mostra come viene definito un limite arbitrario e poi si interrompe quando viene superato.

#!/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   

Se lo gestisci e aumenti il tuo argomento, alla fine si rompe. Molto semplicistico ma aiuta a mostrare come funziona un buffer overflow.

    
risposta data 13.07.2018 - 15:18
fonte

Leggi altre domande sui tag