QQ登录

只需一步,快速开始

微信登录

扫一扫,访问微社区

聚优论坛

查看: 226358|回复: 7

挖洞姿势:特殊的上传技巧,绕过PHP图片转换实现远程代码执行(RCE)

  [复制链接]
179646488 发表于 2014-12-13 19:38:55 | 显示全部楼层 |阅读模式

注册会员,学习更多最新技术!

您需要 登录 才可以下载或查看,没有帐号?点击注册

x

我使用了一个特殊的图片上传技巧,绕过PHP GD库对图片的转换处理,最终成功实现了远程代码执行。

事情是这样的。当时我正在测试该网站上是否存在sql注入漏洞,不经意间我在网站个人页面发现了一个用于上传头像的文件上传表单。开始时我并没指望在上传功能处发现漏洞,但我决定试试。

我上传了一个图片文件,通过截断http数据包,修改jpg图片的文件名后缀为php,然后继续上传。我惊讶的居然上传成功了,我几乎不敢相信这么简单的漏洞居然存在。于是我复制了图片url并且在浏览器上打开。进入我眼帘的是图片的二进制代码,这意味着图片以php解析了,并根据响应包里的content-type以text/html格式返回。

我现在要做的是在jpg文件中注入php代码以进行远程代码执行,于是我尝试将代码<? phpinfo(); ?>写入图片的EXIF头里,但是悲剧的是再次上传发现php代码没有被执行。

在本机进行了测试,结果仍然无效——代码没有被执行

14183523579339.jpg

在上传到服务器后,EXIF里的代码都被删除了,应用通过imagecreatefromjpeg()函数调用了PHP GD库(GD库,是php处理图形的扩展库),对图片进行了转换。那么如果不将代码注入EXIF头而是注入到图片里呢?

14183612065039.jpg

本机测试通过,但当我上传“1.jpg”到服务器上,返回以下结果:

14183612973618.jpg

报错上写着“文件必须是合法的图片(.gif, .jpg, .jpeg, 或.png)”,我惊叹于应用是怎么判断图片不合法的。我又测试了一些其他jpg文件,结果发现修改任何一个图片字符都会引起php-gd库的错误判断,进而造成上传失败。

接下来我又使用gif图片进行了同样的操作,结果是:图片上传成功了,但是图片中的php代码完全被删除了。

虽然这看起来不可思议,但是我不能放弃,因为现在距离成功利用远程代码执行(RCE)只有一步之遥,我必须绕过imagecreatefromgif()函数。我对图片的处理和php GD库的运行知之甚少,可是这不影响我使用一些传统渗透测试方法。

我想到一个方法:对比两张经过php-gd库转换过的gif图片,如果其中存在相同之处,这就证明这部分图片数据不会经过转换。然后我可以注入代码到这部分图片文件中,最终实现远程代码执行。连我自己都佩服我的机智!

14183627164961.jpg

如图,我用十六进制编辑器打开图片文件,找到了php转换前后仍然保持相同的十六进制串“3b45d00ceade0c1a3f0e18aff1”并修改它为<?phpinfo()?>。

141836185868.jpg

保存图片,上传到服务器:

14183620882590.jpg

我的PHP代码被执行了,我最终成功实现了远程代码执行。

POC图片下载地址:

14183628627948.zip (7.56 KB, 下载次数: 11, 售价: 2 金币)

回复

使用道具 举报

yijiecaomin 发表于 2014-12-16 03:20:02 | 显示全部楼层
看帖回帖是美德!:lol
回复 支持 反对

使用道具 举报

1627417860 该用户已被删除
1627417860 发表于 2015-5-24 12:43:12 | 显示全部楼层
2015年5月24日12:43:19
回复 支持 反对

使用道具 举报

skycoolboy 发表于 2015-9-25 22:27:49 | 显示全部楼层
179646488 发表于 2014-12-13
我使用了一个特殊的图片上传技巧,绕过PHP GD库对图片的转换处理,最终成功实现
   好樣的!!!!
来自:IOS客户端
回复 支持 反对

使用道具 举报

zz520520 发表于 2015-10-15 12:10:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

a24258232 发表于 2015-10-30 07:12:09 | 显示全部楼层
回复 支持 反对

使用道具 举报

kojety 发表于 2015-11-2 21:34:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

手机版|小黑屋|Archiver| 聚优论坛 ( 鄂ICP备16013399号-1 )

GMT+8, 2019-9-21 21:04 , Processed in 0.104252 second(s), 35 queries , Gzip On.

Powered by 聚优论坛

© 2010-2019

快速回复 返回顶部 返回列表