ASCII Armoring in un piccolo sistema endian

3

Per quanto riguarda la domanda: Come ASCII-Armoring aiuta a prevenire attacchi buffer-overflow? :

In che modo la regione corazzata previene un attacco?

Se il byte più significativo dell'indirizzo di ritorno è 0x00 , l'autore dell'attacco può ancora modificarlo perché è l'ultimo byte che scrive nel buffer.

Ad esempio: supponiamo che libc:execve risieda in 0x00b1ab1a , ora avendo l'opzione di sovrascrivere il ret della funzione, l'attaccante può riempire gli ultimi 4 byte con 0x1a 0xab 0xb1 0x00 (cioè dove NULL è l'ultimo byte) quindi il reindirizzamento del puntatore all'istruzione è effettivamente danneggiato e va a libc:execve .

Mi sbaglio?

    
posta Bush 27.12.2015 - 16:41
fonte

1 risposta

2

Se il byte più significativo dell'indirizzo di ritorno è 0x00, puoi ancora reindirizzare l'esecuzione da eseguire nell'esempio ma non puoi specificare alcun argomento perché devono essere dopo l'indirizzo di execve. Ma questo è impossibile se la sovrascrittura si ferma a 0x00. Quindi il potere di un utente malintenzionato è molto limitato.

    
risposta data 09.07.2017 - 21:01
fonte

Leggi altre domande sui tag