Jenderal92/CVE-2026-48908

GitHub: Jenderal92/CVE-2026-48908

针对 Joomla SP Page Builder 未授权文件上传导致的 RCE 漏洞(CVE-2026-48908)的多线程自动化漏洞验证与利用工具。

Stars: 2 | Forks: 0

# CVE-2026-48908 — SP Page Builder (Joomla) 未授权 RCE 漏洞利用 ## 📋 漏洞概述 | 属性 | 值 | |--------------------|-----------------------------------------------------------------| | **CVE ID** | CVE-2026-48908 | | **严重程度** | 严重 | | **CVSS v4 Score** | 10.0 | | **弱点** | CWE-284 (不当访问控制) → 未授权文件上传 | | **组件** | 用于 Joomla 的 SP Page Builder (`com_sppagebuilder`) | | **受影响版本** | 1.0.0 – 6.6.1 | | **修复版本** | 6.6.2 | | **所需权限** | 无(身份验证前) | | **用户交互** | 无 | | **攻击向量** | 网络 | | **影响** | 完全控制系统 (RCE) | ## 🔍 描述 SP Page Builder 暴露了控制器任务 **`asset.uploadCustomIcon`** 来处理自定义图标字体包的上传: ``` index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon ``` 在受影响的版本中,可以在**无需身份验证**和**无需有效 CSRF token** 的情况下访问此任务。它接受一个 ZIP 压缩包(multipart 字段 `custom_icon`),并将其内容**解压**到 web 根目录下可公开访问的目录中: ``` /media/com_sppagebuilder/assets/iconfont// ``` 由于该 endpoint 可在身份验证前访问,且解压后的文件位于可浏览的位置,攻击者可以上传任意文件,并通过 HTTP 请求它们来执行 PHP 代码。 ### 代码执行技术 此漏洞利用通过以下方式绕过了常见的服务器端文件名过滤: 1. **区分大小写的黑名单绕过** – 过滤器会拒绝小写的 `.php`、`.phtml`、`.phar` 等,但**不会统一大小写**,因此 `.PHP` 和其他混合大小写变体会被接受。 2. **有效的图标字体结构** – 漏洞利用程序打包了有效的 `selection.json`、`style.css` 和 `fonts/.ttf`,从而确保上传被接受。 3. **Webshell 部署** – 在解压后的压缩包中,一个 PHP web shell 会被写入 `fonts/shxt.{ext}`。 ## 📦 特性 - **多线程**扫描和漏洞利用(可配置线程数) - **自动 URL 修复** – 自动追加所需的 endpoint 路径 - **双扩展名支持** – 尝试 `.php` 和 `.PHP` 变体 - **Webshell 验证** – 检查上传的 webshell 是否可访问且功能正常 - **结果记录** – 将成功的 webshell URL 保存到 `result.txt` - **进度跟踪** – 显示实时状态和统计信息 ## 🚀 用法 ### 前置条件 - Python **2.7** - `requests` 库 ### 安装说明 ``` git clone https://github.com/Jenderal92/CVE-2026-48908 cd CVE-2026-48908 pip install requests ``` 基本用法 ``` python2 CVE-2026-48908.py list.txt ``` 自定义线程数 ``` python2 CVE-2026-48908.py list.txt 20 ``` 输入文件格式 list.txt 应每行包含一个目标 URL: ``` https://example.com http://target-site.com/joomla https://192.168.1.100/joomla ``` 输出 · 成功的 webshell URL 将被追加到 result.txt · 每一行包含上传的 PHP webshell 的完整 URL ⚙️ 工作原理 1. URL 修复 – 如果尚未存在,则自动追加 index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon。 2. ZIP 构建 – 创建一个有效的图标字体 ZIP 压缩包,其中包含位于 fonts/shxt.{ext} 的 PHP webshell。 3. 上传 – 通过 multipart POST 将 ZIP 发送到受影响的 endpoint。 4. 验证 – 检查 webshell 是否可访问并返回预期输出(存在 "Upload")。 5. 日志记录 – 将成功的 webshell URL 保存到 result.txt。 Shell Payload 内置的 shell 提供: · 服务器环境信息 (php_uname()) · 文件上传接口,用于上传其他文件 · 成功/失败反馈 🛡️ 缓解措施 · 将 SP Page Builder 升级到 6.6.2 或更高版本。 · 审计上传目录中是否存在未经授权的文件: · /media/com_sppagebuilder/assets/iconfont/ · 删除在这些目录中发现的任何意外 PHP 文件。 · 检查服务器日志中是否有发往 asset.uploadCustomIcon 的可疑 POST 请求。 · 部署 Web Application Firewall (WAF) 来阻止此类请求。 ⚠️ 免责声明 此工具仅供教育和授权的安全测试目的使用。 未经授权访问计算机系统是违法行为。作者对任何滥用此工具或由此造成的损害不承担任何责任。请仅在被您拥有或获得明确书面测试许可的系统上使用此工具。 📚 参考 · [Censys 安全公告](https://censys.com/advisory/cve-2026-48908/) · [NVD 条目](https://nvd.nist.gov/vuln/detail/CVE-2026-48908) · [JoomShaper 安全公告](https://www.joomshaper.com/) 📄 许可证 本项目仅供教育和研究目的使用。风险自负。
标签:CISA项目, Joomla, 编程工具, 远程代码执行, 逆向工具