BUUCTF Pwn [第五空间2019 决赛]PWN5
1.题目下载地址
2.checksec

- 开启了canary
- 没有PIE
2.IDA分析

- 查看主函数,函数的功能是读入一个4位的随机密码,再将我们输入的密码与随机生成数比较,相同就执行system
- 这里面的printf()存在格式化字符串漏洞
1.利用 "AAAA %08x %08x %8x %08x %08x %08x %08x………… ",这样的字符串来找到我们输入的参数在函数栈上的位置,我看别的师傅叫首地址偏移或者偏移量
2.假设是在栈上第n位,那么可以利用 %n$ 定位到参数在栈上的位置
3.利用%n来修改参数里的内容,我们不知道读入的随机数是多少,那么我们将它改成我们写入的数据不就好了
- 首先我们要定位到我们输入的字符串在栈上的位置。
lwj@ubuntu:~/Desktop/pwn/fifth_space_pwn5$ ./pwn
your name:aaaa %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %

本文详细介绍了如何利用格式化字符串漏洞进行攻击。通过分析程序的checksec信息,发现存在开启的canary但未启用PIE。在IDA中分析主函数,找到了printf函数的漏洞。通过输入特定格式的字符串,确定了输入参数在栈上的位置。利用%n来修改栈上的随机数,构造payload并成功修改了内存中的值。最终,通过发送payload和目标地址,成功触发system调用,完成exploit。
最低0.47元/天 解锁文章
629

被折叠的 条评论
为什么被折叠?



