这次算是跟着师傅们全程打完了CCTF的线上赛,一些强队的WriteUp也放了出来。这篇文章主要是想跟着大牛的思路把那些题重新再过一遍。
PWN3
这个是格式化字符串漏洞的题。printf的格式化串直接来自用户输入。
操作流程
- 用格式化字符串"%7$x"泄漏libc的地址。(由调试知这个地址已在栈中)
- 用泄漏出来的地址找出libc的版本
- 用得到的版本推算出system()函数的偏移
- 用格式化字符串修改got表的一个为system函数地址
- 调用被修改的函数
system()的参数"/bin/sh"通过正常途径就可以构造。
PWN1
这道题基本上是最后被拿到一血的几道题之一。