PHP-GD上传绕过实战

渗透技巧 2年前 (2022) admin
887 0 0

前言

某次实战中,进行文件上传绕过时,发现会校验数据内容
PHP-GD上传绕过实战
尝试上传正常图片,发现头部被添加了gd-jpeg v1.0,判断使用了PHP-GD库
PHP-GD上传绕过实战

简要说明

PHP-GD库不仅会对图片内容进行检测,
通过imagecreatefromjpeg()函数进行转换,
还会删除exif里的元数据

利用过程

1.利用工具jpg_payload.php把php代码注入到图像的exif标头中
php jpg_payload.php image.jpg image-gd.jpg
可以看到代码确实被注入到了图像中脚本通过判断被添加gd-jpeg v1.0头部和原图像中相同的地方,通过十六进制匹配相同的值,找到这个值后,转换php代码为十六进制,注入到匹配值里
PHP-GD上传绕过实战
但是在我的测试环境里,发现被注入的图像还是会被二次渲染

Bypass

经过多次测试,发现原来是图片里面的特殊字符渲染后被转换成php可执行字符
测试发现图像转换成gif特殊字符变少很多,用windows自带的画图工具画一张空白的图像,就不会有多余的特殊字符
PHP-GD上传绕过实战
利用这个思路即可绕过当时测试等环境

脚本注入

python gd-gif.py 1.gif '<?php phpinfo()?>' 2.gif
PHP-GD上传绕过实战

交流群(应后台表哥要求,方便payload发放~)
PHP-GD上传绕过实战




      


        

                        

免责声明


        


本公众号文章以技术分享学习为目的。

由于传播、利用本公众号发布文章而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任。

一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

原文始发于微信公众号(极梦C):PHP-GD上传绕过实战

版权声明:admin 发表于 2022年3月8日 下午7:00。
转载请注明:PHP-GD上传绕过实战 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...