Pointer Redirecting
Puntatori a stringhe
Se una chiamata di funzione sta per utilizzare un indirizzo di una stringa che si trova nello stack, è possibile sfruttare il buffer overflow per sovrascrivere questo indirizzo e inserire un indirizzo a una stringa diversa all'interno del binario.
Se ad esempio una chiamata di funzione system
sta per utilizzare l'indirizzo di una stringa per eseguire un comando, un attaccante potrebbe inserire l'indirizzo di una stringa diversa nello stack, export PATH=.:$PATH
e creare nella directory corrente uno script con il nome della prima lettera della nuova stringa poiché verrà eseguito dal binario.
Puoi trovare un esempio di questo in:
32bit, cambia l'indirizzo alla stringa dei flag nello stack in modo che venga stampata da
puts
Puntatori a funzioni
Come i puntatori a stringhe ma applicati alle funzioni, se lo stack contiene l'indirizzo di una funzione che verrà chiamata, è possibile cambiarlo (ad esempio per chiamare system
).
Puoi trovare un esempio in:
Riferimenti
Last updated