-
-
[原创]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如下:
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: