首页
社区
课程
招聘
[原创] PHP 7 漏洞挖掘系列之一:Stack-based integer overflow
发表于: 2017-4-11 18:17 7217

[原创] PHP 7 漏洞挖掘系列之一:Stack-based integer overflow

2017-4-11 18:17
7217

   

首先声明这些漏洞不是我挖的,我想挖但是挖不出来,蛋疼。本次讲解栈溢出漏洞,这个漏洞是比较常见的漏洞,现在php里面不太常见了,php漏洞挖掘没有啥好工具,只能人工慢慢的看,afl好像可以自动化挖掘,不过我跑了10几天也没跑出个crash。

包含漏洞的版本:PHP 7.0.11


首先下载源码http://php.net/releases/,然后编译安装,版本可以低一点,往后的漏洞这个版本都是没打补丁的。环境采用ubuntu和编译版本的php7.0.2,只有linux才有符号表,windows下不好调试,虽然方便的多。现在正式开始吧。 

定位到漏洞函数代码 /ext/gd/gd.c:2222

有可能上面的代码长了点,但是只要找到关键函数就行了_php_image_create_from_string,在这个函数中的gdNewDynamicCtxEx这个函数才是关键点,跟踪进去就行了。在gd.c:2196行,假如你使用其他版本可能行号不一样,不过没事搜索函数就行了。

下面是几个结构体,可以对照着去理解代码。

下面是gdb的调试信息,不知道为什么参数的值没有显示出来。有些代码直接阅读比较麻烦,可以gdb调试代码,再调试的同时,打印出它的值。

poc就放下面了


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

收藏
免费 1
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
赞赏  CCkicker   +1.00 2017/05/08
最新回复 (8)
雪    币: 1080
活跃值: (165)
能力值: (RANK:30 )
在线值:
发帖
回帖
粉丝
2

如果是 7.0.11 那么应该会有不少环境都包含此漏洞,理论上能拿到 php 进程权限,可能是 www,也可能是 root,威胁还是很大的。不过在实际的项目中这个函数 image_create_from_string() 使用的频度不太高。


建议还在使用 PHP 7 低版本的用户尽快升级到最新版本,避免服务器遭到入侵。

2017-4-11 18:51
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
最新的7.1.2有验证过?
2017-4-11 18:52
0
雪    币: 1746
活跃值: (227)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
最新的早就修复了,
2017-4-11 19:21
0
雪    币: 1746
活跃值: (227)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
kanxue 最新的7.1.2有验证过?
这是我写这个系列,选的案例
2017-4-11 19:22
0
雪    币: 1746
活跃值: (227)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
6
axiuno 如果是 7.0.11 那么应该会有不少环境都包含此漏洞,理论上能拿到 php 进程权限,可 ...
对的,这些函数使用的比较少,用来本地提权的话,倒不错的。版本不一样行号不一样,我下的版本是在那些行号上。
2017-4-11 19:26
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
7
hackyzh 这是我写这个系列,选的案例
不错,期待后续系列
2017-4-11 20:58
0
雪    币: 6101
活跃值: (3082)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好文。谢谢分享
2017-4-12 01:38
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
多谢分享
2017-4-15 11:24
0
游客
登录 | 注册 方可回帖
返回
//