Stavo provando a tentare un attacco di overflow del buffer return-to-libc per l'assegnazione della sicurezza del mio Software Computer. Per quanto ne so, possiamo fare questo tipo di attacchi indipendentemente dalle misure di protezione dello stack come canaries
e non-executable stack
. Questo perché le funzioni libc
non risiedono nello stack e abbiamo solo bisogno di spostare il flusso di controllo del nostro programma sovrascrivendo l'indirizzo di ritorno con libc function address
e passando argomenti appropriati. Questa figura sembra riassumere la procedura immagino.
Qual è il mio dubbio, secondo il figura per la seconda parte, è il frame dello stack dato per la funzione libc
o è solo per una funzione definita nel programma dell'utente stesso? Non riesco a capire il bisogno di fake_ret
. Non possiamo semplicemente sovrascrivere l'indirizzo di ritorno della nostra funzione sovrascrivendo EIP
con l'indirizzo di dire unlink
e gli argomenti possono essere inseriti nel buffer di funzione dell'utente che può essere utilizzato per passare alla funzione unlink
? < br>
Si noti che con l'uso dell'utente (qualcosa), mirano a indicare (qualcosa) che è definito dall'utente stesso nel suo programma. Grazie.