绕过PHP图片上传转换实现远程代码执行(RCE)危险

论坛头像随机调换代码1.将 ?readfile(rand(0,2卡塔尔(قطر‎..gifState of Qatar;?
写字板存为yourname.php文件 2.命名要使用的头像图片分别为0.gif 1.gif 2.gif
3.php文件和图片上传到援救php的空间 4.在论坛个人设置的头像栏填入 5.OK

本人使用了多少个分化平时的图片上传技艺,绕过PHP
GD库对图片的转移管理,最后马到成功促成了中远间距代码实践。

事务是那般的。那个时候自己正在测验该网址上是否存在sql注入漏洞,不上心间本人在网址个人页面发现了二个用以上传头像的文本上传表单。开首时自己并没指望在上传功用途开掘漏洞,但本人说了算尝试。

本身上传了一个图形文件,通过截断http数据包,修改jpg图片的文本名后缀为php,然后继续上传。作者好奇的居然上传成功了,笔者大概不可思议这么轻松的漏洞以至存在。于是自个儿复制了图片url并且在浏览器上开辟。步向小编眼帘的是图表的二进制代码,那意味图片以php分析了,并依据响应包里的
content-type以text/html格式再次来到。

自己前几日要做的是在jpg文件中流入php代码以开展长途代码施行,于是作者尝试将代码写入图片的EXIF头里,可是正剧的是双重上传开掘php代码未有被实践。

在本机进行了测验,结果仍旧无效——代码未有被试行

图片 1

在上传到服务器后,EXIF里的代码都被去除了,应用通过imagecreatefromjpeg(卡塔尔国函数调用了PHP
GD库(GD库,是php管理图片的扩张库卡塔尔,对图片实行了退换。那么一旦不将代码注入EXIF头而是注入到图片里呢?

图片 2

本机测量试验通过,但当自家上传“1.jpg”到服务器上,重回以下结果:

图片 3

报错上写着“文件必需是官方的图纸(.gif, .jpg, .jpeg,
或.png卡塔尔(قطر‎”,小编欣喜于接纳是怎么判定图片不合规的。小编又测量试验了部分别样jpg文件,结果发掘更改任何一个图形字符都会唤起php-gd库的错误剖断,进而招致上传退步。

接下去自个儿又采纳gif图片进行了一如既往的操作,结果是:图片上传成功了,不过图片中的php代码完全被去除了。

纵然如此那看起来难以置信,不过本身不能够抛弃,因为今后离开成功采纳远程代码实践(RCE卡塔尔国独有一步之遥,小编必需绕过imagecreatefromgif(卡塔尔(قطر‎函数。笔者对图纸的管理和php
GD库的周转发通知之甚少,然而那不影响笔者动用部分古板渗透测量检验方法。

自家想开贰个主意:相比两张经过php-gd库转变过的gif图片,假如中间存在相近之处,那就证实那部分图纸数据不会经过调换。然后小编能够注入代码到这有的图形文件中,最终促成长途代码推行。连笔者自身都佩性格很顽强在艰难曲折或巨大压力面前不屈笔者的灵敏!

图片 4

如图,笔者用十二进制编辑器张开图片文件,找到了php转变前后如故保持一致的十八进制串“3b45d00ceade0c1a3f0e18aff1”并校订它为。

图片 5

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

图片 6

小编的PHP代码被推行了,作者最终成功落到实处了长途代码推行。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图