首页
社区
课程
招聘
[原创]看雪CTF 第八题挖宝 偷鸡解题思路
发表于: 2019-3-27 17:45 7151

[原创]看雪CTF 第八题挖宝 偷鸡解题思路

2019-3-27 17:45
7151

之前周末的时候要去打TCTF,就没有详细的写这道题的WP,现在重新分享下这道pwn的偷鸡解法。

通过IDA静态分析,我们可以发现在call main_treasure后函数的返回地址的偏移是0xD7461, 我们可以通过局部写覆盖它最后一个字节为0x48,这样当返回的时候它会调用printf函数,并再次进入main_treasure函数调用leave_message


程序的溢出漏洞十分的明显。

而且我们发现在得到宝藏一之后,输入48个字节后溢出的8个字节会被当成下一次宝藏1堆块分配的地址。

golang堆栈的地址是固定的。

一个很自然的方法是直接分配堆块到栈上覆盖返回地址进行ROP。

然而checksec 后发现程序开启了pie


但开启了pie并不代表就不能进行ROP了





同时,更加有趣的是,main_println函数会在这个时候打印出的内容中有text段上的一个地址(可以获得process的基址),并且再次调用main_treasure函数leave_message的地址还是上次leave_message的地址(也就是说能够再次覆盖返回地址进行ROP)

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-3-28 09:58 被kanxue编辑 ,原因:
收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 4811
活跃值: (886)
能力值: ( LV13,RANK:319 )
在线值:
发帖
回帖
粉丝
2
师傅 我要学偷鸡
2019-3-27 20:01
0
雪    币: 785
活跃值: (93)
能力值: ( LV4,RANK:44 )
在线值:
发帖
回帖
粉丝
3
武神说笑了
2019-3-27 20:19
0
游客
登录 | 注册 方可回帖
返回
//