ikunya520/emlog-upload-rce-poc
GitHub: ikunya520/emlog-upload-rce-poc
针对 EMLOG CMS 插件上传功能的任意文件上传导致远程代码执行漏洞的 PoC 与复现文档。
Stars: 0 | Forks: 0
# 📌 漏洞复现(通过上传恶意插件实现 RCE)
## 🧾 概述
本文档描述了在插件上传功能中复现远程代码执行(RCE)漏洞的步骤。该漏洞源于 `emUnZip()` 函数对 ZIP 压缩包的不当验证,从而允许上传并执行任意的 PHP 文件。
## 🧩 第一步:准备恶意插件压缩包
创建以下目录结构:
```
eval.zip
└── eval/
└── eval.php
```
## 🧪 第二步:创建恶意 PHP 文件
文件:`eval/eval.php`
```
```
该文件充当一个简单的 webshell,用于执行系统命令。
## 📤 第三步:上传插件
1. 登录应用程序后台。
2. 导航至插件上传/安装功能。
3. 上传构造好的 `eval.zip` 文件。
## 📂 第四步:文件解压位置
上传成功后,压缩包将被解压至:
```
/content/plugins/eval/eval.php
```
## 💥 第五步:触发远程代码执行
通过浏览器访问上传的文件:
```
http:///content/plugins/eval/eval.php?cmd=id
```
## ✅ 预期结果
命令在服务器上被执行,并且其输出会显示在响应中。
示例:
```
uid=33(www-data) gid=33(www-data) groups=33(www-data)
```
## 🔍 根本原因
* 应用程序仅通过检查特定 PHP 文件是否存在来验证插件结构。
* 其未对文件内容进行验证,也未限制可执行文件的类型。
## ⚠️ 安全影响
* 任意 PHP 文件上传
* 远程命令执行
* Web 应用程序被完全攻陷
## 🔧 修复建议
* 将压缩包解压至非 Web 可访问的目录
* 对压缩包内容实施严格的验证
* 使用基于白名单的插件结构验证
标签:CISA项目, CMS漏洞, CVE, EMLOG, OPA, PHP漏洞, PoC, RCE, Webshell, Web安全, 任意文件上传, 协议分析, 恶意插件, 提示词注入, 插件上传漏洞, 数字签名, 文件上传绕过, 文档安全, 暴力破解, 权限提升, 漏洞分析, 漏洞复现, 编程工具, 网络安全, 蓝队分析, 路径探测, 远程代码执行, 隐私保护, 靶场