首页
社区
课程
招聘
[原创]dir-645 超长cookie栈溢出漏洞分析之qemu-system模式
发表于: 2021-1-10 13:41 21889

[原创]dir-645 超长cookie栈溢出漏洞分析之qemu-system模式

2021-1-10 13:41
21889

上一篇文章结尾提到了此漏洞也能用qemu-system模式复现成功,本篇就来填坑和开下一个坑

用到的环境和工具与上一篇文章用到的相同


qemu-system模式下的网络配置绝对算是一个巨坑,对于新手来说学习过程非常不友好,我的网卡名是“ens33”所以尖括号中的全都为“ens33”,配置命令如下

这一步主要需要注意tap的名称要和之前创建的tap接口名称一致,启动命令如下

文件传输命令如下(也可使用ftp上传)

自行创建conf文件并输入以下内容(注意修改内容中的IP地址):

然后需要将固件中需要用到的文件复制到系统目录下,先创建copy.sh文件,然后写入以下内容

执行copy.sh后使用浏览器访问

直接执行hedweg.cgi文件会出现如下错误

这是因为执行时缺少了环境变量,命令如下

再次执行hedweg.cgi依旧会报错

这是因为执行时缺少了post数据

从GitHub上下载gdbserver,找到对应的版本

gdbserver上传到qemu虚拟机后执行如下命令启动调试

此时的qemu虚拟机环境变量如下

cookie中对应的是使用patternLocOffset.py创建的超长字符串,用来判断溢出的偏移

我在调试至此时出现了玄学情况,溢出的sprintf函数不读取cookie

在sess_get_uid函数处下断,查看程序是否读到了cookie

cookie读取成功了,但是并没有传到sprintf函数中,此时我们设置一下REMOTE_ADDR这个环境变量并再次启动调试

读取成功了,但是依旧不明白为什么cookie溢出会读到remote_addr;尝试使用patternLocOffset测得溢出偏移,并获取libc基址

与上一篇一样用到ROP链版本的poc,代码如下:

如果在使用nc命令时遇到了如下错误,有两种方法解决此错误


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-1-10 17:06 被pureGavin编辑 ,原因: 内容修改
收藏
免费 6
支持
分享
打赏 + 2.00雪花
打赏次数 1 雪花 + 2.00
 
赞赏  yjmwxwx   +2.00 2021/02/21
最新回复 (5)
雪    币: 21580
活跃值: (6401)
能力值: (RANK:445 )
在线值:
发帖
回帖
粉丝
2
文章不错,但有些图片需要重新上传一下,期待你的下一篇。
2021-1-10 16:53
0
雪    币: 14517
活跃值: (17538)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
3
胡一米 文章不错,但有些图片需要重新上传一下,期待你的下一篇。

已全部修改完毕

最后于 2021-1-10 17:07 被pureGavin编辑 ,原因:
2021-1-10 17:07
0
雪    币: 1743
活跃值: (1375)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2021-1-12 09:08
0
雪    币: 0
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
师傅你好,请问目前有没有模拟运行vxworks固件的方法?
2022-8-9 23:28
0
雪    币: 14517
活跃值: (17538)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
6
jason_r 师傅你好,请问目前有没有模拟运行vxworks固件的方法?
模拟的方法终究是下策,如果有实力的话,建议直接上真实设备,或者是找一些专业设备的模拟软件
2022-8-11 17:37
0
游客
登录 | 注册 方可回帖
返回
//