首页
社区
课程
招聘
[原创]CTF2019晋级赛Q2第三题分析(qwertyaa)
发表于: 2019-6-14 13:35 3150

[原创]CTF2019晋级赛Q2第三题分析(qwertyaa)

2019-6-14 13:35
3150

本题是典型的 FmtStr 漏洞题,通过查看 checksec 可以看到保护全开。比较特殊的是这个程序是个Shared Object文件而非可执行文件,不过使用 socat tcp-listen:10002,fork exec:./format 可以在本地运行,不影响接下来的分析。

首先我们通过 gdb 调试,使用 x/100x $sp-0x50 在 stack 附近找找, 可以发现一些地址上的指针可以用来泄露 libc 与 ELF 文件的基地址与 stack 地址。

接下来在 stack 内找到一个指向 stack 内一个指向 stack 内部的指针的指针,通过 %**c%**$hn 将借用这个指针将这个指针指向的指针改为指向 main 函数结束后提供返回到的 libc 地址的指针的地址,然后借用这个指针指向的指针将返回到的地址改为 libc 库内的一处要求 EAX==0(恰好 main 函数返回值为 0)的 one_gadget(+0x5f065),然后退出循环即可。

EXP如下:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//