Ho fatto un esperimento di overflow del buffer su una VM di Ubuntu 16.04 ( Linux ubuntu 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
) e ho ottenuto un errore sconcertante dopo aver eseguito il codice della shell. Il codice shell è copiato da questo tutorial ed è specificamente "\x48\x31\xf6\x48\x31\xd2\x48\xbb\x2f\x62\x69\x6e\x2f\x73\x68\x11\x48\xc1\xe3\x08\x48\xc1\xeb\x08\x53\x48\xc7\xc0\x3b\x11\x11\x11\x48\x89\xe7\x48\xc1\xe0\x38\x48\xc1\xe8\x38\x0f\x05"
. In edb , vedo RIP
che salta al codice shell e lo esegue, come mostrato di seguito:
edb che mostra il codice shell eseguito
Dopo il comando syscall
che si suppone per execve
shell, tuttavia, sembra cadere in un buco nero. Edb inizia a svuotare, come mostrato di seguito:
e mentre passo nel debugger "al buio", la sua finestra della riga di comando inizia a mostrare i seguenti errori:
Ti chiedi se qualcuno l'ha già visto e sai come risolverlo?