首页
社区
课程
招聘
1
[原创]2019 Q2 第三题 金字塔的诅咒(pwn) 分析
发表于: 2019-6-23 16:02 3298

[原创]2019 Q2 第三题 金字塔的诅咒(pwn) 分析

2019-6-23 16:02
3298

保护全开

程序一开始,作者就给出了亲切的问候:

主函数很简单:

很明显的格式化字符串漏洞,format string是个全局变量:

首先栈上有libc和栈地址,先把这两个泄露出来,计算出one_gadget和保存返回地址的栈地址。

主要思路:利用%n参数改写main函数返回地址为one_gadget。
然而栈上并没有指向返回地址的值,所以我们要自己构造出来。

构造方法:
1.通过调试,找到一个保存在栈上的栈指针,而且这个栈指针指向的值也是一个栈上的地址(因为%n测试时只能写入两个字节的值,写4个字节会失败?)。
2.%n参数修改这个栈指针指向的栈地址的低16位为&ret_addr的低16位,这样,这个栈地址就和&ret_addr一样了。
3.%n参数修改ret_addr低16位为one_gadget低16位
4.%n参数修改这个栈指针指向的栈地址的低16位为&ret_addr+2的低16位
5.%n参数修改ret_addr高16位为one_gadget高16位

最后程序返回,执行One_gadget拿到shell


[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2019-6-23 16:45 被mratlatsn编辑 ,原因:
收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-25 01:58
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册