Mohammad-008/rsfiles-CVE-2026-57827
GitHub: Mohammad-008/rsfiles-CVE-2026-57827
针对 Joomla RSFiles! 组件 CVE-2026-57827 未认证文件上传 RCE 漏洞的独立 PoC 利用与检测工具。
Stars: 0 | Forks: 0
# CVE-2026-57827 — RSFiles! 未认证文件上传 → RCE
针对 Joomla 的 **RSFiles!** (`com_rsfiles`) 组件中 **CVE-2026-57827** 的漏洞利用 + 独立检测工具,受影响版本 **< 1.17.12**(已在 `1.17.12` 中修复,CVSS 9.8 / 10.0)。
前端上传分为两个任务:
1. `rsfiles.checkupload` — 预检门(权限 + 扩展名白名单)
2. `rsfiles.upload` — 写入方法(无权限检查、无文件类型检查、无 CSRF)
写入任务可以被**直接**调用,从而跳过预检门,这使得未认证的攻击者可以将可执行的 `.php` 文件上传到公共文件夹并运行它 → **未认证 RCE**。
## ⚠️ 本项目是什么 / 不是什么
- ✅ 为研究人员和防御者提供的一个清晰、易读的*描述性*攻击链重新实现。
- ✅ 包含一个**本地模拟服务器**,因此您可以以**零风险**验证整个流程,不会对任何真实系统造成影响。
- ✅ 包含一个**仅检测**模式,**完全不上传**任何文件。
- ❌ 并非供应商授权的 PoC —— 目前不存在公开的 PoC,这是基于公开安全公告的独立实现。
## 文件
| 文件 | 用途 |
|---|---|
| `cve_2026_57827.py` | 漏洞利用 + 扫描器 + CLI(入口点) |
| `rsfiles_detect.py` | 独立检测模块(无利用代码)—— 也有自己的 CLI |
| `payload.py` | 模块化、紧凑的 PHP payload 构建器 |
| `common.py` | 共享的 HTTP 客户端、配置和辅助工具 |
| `mock_server.py` | 用于测试的安全本地模拟 |
所有模块必须位于**同一目录**中(它们会相互导入)。
## 安装
```
python3 -m pip install -r requirements.txt # or just: pip install requests
```
## 使用说明
### 1 · 仅检测(无上传,适合侦察)
```
python rsfiles_detect.py -t example.com
```
```
Host : example.com
RSFiles! : YES v1.17.11
Protocol : https
Status : VULNERABLE (below 1.17.12)
```
多主机:
```
python rsfiles_detect.py -f hosts.txt
```
### 2 · 完整漏洞利用(单一目标)
```
python cve_2026_57827.py -t example.com
```
成功后,该工具会打印出 shell URL **及其随机 token** 和命令输出 —— 该输出即为 RCE 的证明。
### 3 · 批量扫描 + 报告
```
python cve_2026_57827.py -f targets.txt --threads 30 -o shells.txt --csv report.csv
```
| 标志 | 描述 |
|---|---|
| `--threads N` | 并发数(默认为 30) |
| `--proxy URL` | 通过代理路由(Burp/ZAP) |
| `--timeout N` | 每个请求的超时时间(秒) |
| `--no-cleanup` | 保留上传的 shell(默认:RCE 后自动删除) |
| `-o FILE` | 保存 RCE URL |
| `--csv FILE` | 完整的结构化报告 |
| `--debug` / `-v` | 详细的请求级别日志 |
## 本地测试(零风险)
```
# Terminal 1 — 启动 mock(存在漏洞)
python mock_server.py 8000 1.17.11
# Terminal 2 — 扫描它
python rsfiles_detect.py -t 127.0.0.1:8000
python cve_2026_57827.py -t 127.0.0.1:8000
```
`1.17.11` / `1.17.10` = 存在漏洞 · `1.17.12` = 已修补。
## 设计说明
- **模块化 payload**(`payload.py`):每种行为(gate、upload、exec、delete、list)都是一个小巧的函数;exec 函数名经过 base64 编码,因此像 `system` 这样的原始名称不会出现在文件字节中。
- **随机化的良性文件名**(例如 `cache7f31.php`),而不是经典的隐藏点文件 shell 名称。
- **增量计数器**(O(1)),而不是重新扫描结果。
- 通过 `common.base_of()` 进行**单一来源 URL 解析**。
## 致谢 / 灵感
风格模仿了公开的 Joomla 组件漏洞利用集合(例如 `incredibleindishell/joomla-vulnerabilities`)以及针对此 CVE 的 RSJoomla/mysites.guru 安全公告说明。这是一个独立的实现;未使用任何公开的 PoC。
## 许可证
MIT —— 详见 [LICENSE](LICENSE)。仅供研究/防御使用。
标签:CISA项目, Joomla, PoC, Ubuntu, Web安全, 威胁模拟, 无服务器架构, 暴力破解, 漏洞利用代码, 编程工具, 蓝队分析, 远程代码执行, 逆向工具