Almavj/Joomla_CVE_2026_48907

GitHub: Almavj/Joomla_CVE_2026_48907

一款用于检测 Joomla! JCE 编辑器组件 CVE-2026-48907 未授权 RCE 漏洞的单文件 Python 批量扫描器。

Stars: 0 | Forks: 1

# MASTA CVE-2026-48907 扫描器 ``` THIS TOOL IS FOR AUTHORIZED SECURITY ASSESSMENTS ONLY. Scanning systems you do NOT own or have WRITTEN PERMISSION to test is ILLEGAL in most jurisdictions. The author (Hussein Mohamed masta ghimau) accepts ABSOLUTELY NO liability for any misuse, damage, legal action, or data loss arising from the use of this tool. By running this scanner you agree to: Only scan assets YOU OWN or have EXPLICIT WRITTEN CONSENT. Understand that uploads a harmless POC PHP file to the target server as part of the intrusive accuracy check. Manually delete every uploaded POC file immediately after use. USE AT YOUR OWN RISK. ``` ## 概述 `masta-cve-2026-48907.py` 是一个**完全原创的单文件** Python 扫描器,旨在检测运行低于 `2.9.99.5` 版本 JCE Editor 组件的 Joomla! 实例中的 **CVE-2026-48907** 漏洞。 - **纯标准库 HTTP** — 无需依赖 `requests`/`httpx`。 - **独立运行** — 仅一个 `.py` 文件,可放置在任何地方运行。 - **优雅降级** — 即使没有安装 `openpyxl` 或 `rich` 也能正常工作,但在安装了这些库后界面会更加美观。 - **零误报 RCE** — 通过数学验证 payload 进行确认。 - **多线程批量扫描** — 可通过 `ThreadPoolExecutor` 快速扫描整个 URL 列表。 - **专业报告** — 自动生成带有条件颜色的精美 Excel (`.xlsx`) 报告。 ## 功能 | 功能 | 描述 | |---|---| | 🔍 多源指纹识别 | 通过 meta 标签、manifest、静态资源、语言文件以及 JCE 特定的端点检测 Joomla! 和 JCE | | 🛡 WAF 检测 | 识别 Cloudflare、Incapsula、Sucuri 和 ModSecurity 的拦截 | | 🧪 安全的侵入式 POC | 上传无害的 PHP 数学验证器(带有归属信息并明确标记以便清理) | | 📊 基于卡片的终端 UI | 为每个目标提供丰富的 `Panel` + `Table` 卡片(或 ANSI 后备方案) | | 📁 Excel 报告 | 自动生成 `.xlsx` 文件,包含表头、冻结窗格、列宽和颜色标记的状态单元格 | | ⚙️ 代理支持 | 通过 Burp / ZAP / 任何 HTTP 代理路由所有流量 | | 🧵 多线程 | 支持为批量列表配置工作线程 | ## 环境要求 - **Python 3.8+** - *(可选)* 用于生成 Excel 报告的 `openpyxl` - *(可选)* 用于美化终端卡片的 `rich` 其他所有功能均使用 Python 标准库(`urllib`、`http.cookiejar`、`argparse`、`threading` 等)实现。 ## 安装说明 ``` # 1. Clone the repo git clone https://github.com/YOUR_USERNAME/masta-cve-2026-48907.git cd masta-cve-2026-48907 # 2. (可选但推荐)安装 extras pip install -r requirements.txt ``` 你也可以**无需安装任何依赖直接运行**该脚本(仅输出到终端,不生成 Excel): ``` python masta-cve-2026-48907.py -u https://target.com ``` ## 使用说明 ### 单一目标 ``` python masta-cve-2026-48907.py -u https://target.com/joomla ``` ### 批量列表(多线程) ``` python masta-cve-2026-48907.py -l targets.txt -t 10 ``` ### 通过代理(例如 Burp Suite) ``` python masta-cve-2026-48907.py -u https://target.com -p http://127.0.0.1:8080 ``` ### 全部选项 ``` python masta-cve-2026-48907.py -h -u URL Single target URL -l FILE File containing URLs (one per line) -o OUTPUT Custom Excel output path -t THREADS Concurrent threads (default: 5) -p PROXY Proxy URL (e.g. http://127.0.0.1:8080) --timeout N Request timeout in seconds (default: 12) --verify-ssl Enable SSL certificate verification (default: disabled) -v, --verbose Show full per-target result cards during scan -d, --debug Show internal HTTP request traces --no-color Disable colored terminal output ``` ## 扫描器流程 以下是从输入到生成最终报告的完整扫描逻辑。 ``` flowchart TD A[User provides -u URL or -l FILE] --> B[Normalize & deduplicate targets] B --> C[Launch ThreadPoolExecutor] C --> D[For each target] D --> E1[probe_joomla
GET /, meta, manifest,
static assets, README] E1 --> F1{Joomla! detected?} F1 -- No --> R1[Status: NOT_JOOMLA] F1 -- Yes --> E2[probe_jce
GET jce.xml, endpoints,
JCE-specific markers] E2 --> F2{JCE detected?} F2 -- No --> R2[Status: SAFE
JCE not installed] F2 -- Yes --> F3{Version >= 2.9.99.5?} F3 -- Yes --> R3[Status: PATCHED] F3 -- No --> E3[extract_csrf
Parse Joomla! CSRF token] E3 --> F4{Token found?} F4 -- No --> R4[Status: PATCHED
CSRF missing → likely hardened] F4 -- Yes --> E5[Build math-verifier payload
masta-cve-2026-48907-poc ...] E5 --> E6[Vector 1: Multipart POST
profile_file upload to tmp/] E6 --> F5{HTTP 200?} F5 -- Yes --> E7["GET /tmp/masta-{rand}.xml.php"] E7 --> F6{Body contains
MATHOK:3105:END ?} F6 -- Yes --> R5[Status: VULNERABLE
Confidence: CONFIRMED] F6 -- No --> E8[Vector 2: Browser chain
upload + rename via RPC] E8 --> F7{RCE confirmed?} F7 -- Yes --> R5 F7 -- No --> E9[Check for WAF block page] E9 --> F8{WAF detected?} F8 -- Yes --> R6[Status: BLOCKED_BY_WAF] F8 -- No --> R7[Status: SAFE] F5 -- No --> E8 R1 --> S[Append result to Excel + Terminal card] R2 --> S R3 --> S R4 --> S R5 --> S R6 --> S R7 --> S S --> D D --> T[Print Summary Dashboard] T --> U[Save Excel Report to reports/] U --> V[Print cleanup reminder for
all uploaded POC files] style R5 fill:#ff0000,stroke:#333,color:#fff style R3 fill:#32CD32,stroke:#333,color:#000 style R6 fill:#FFD700,stroke:#333,color:#000 ``` ## 结果状态 | 状态 | 含义 | 置信度 | |---|---|---| | **VULNERABLE** | PHP payload 已执行且数学验证通过。确认存在 RCE。 | `CONFIRMED` | | **VULNERABLE_UPLOAD_ONLY** | 文件上传成功,但 PHP 执行被拦截。可利用但未确认 RCE。 | `HIGH` | | **PATCHED** | 检测到 Joomla! / JCE 且版本为 `>= 2.9.99.5`,或 CSRF 已加固。 | `HIGH` / `MEDIUM` | | **SAFE** | 未安装 JCE,或利用向量失败(可能已修补/加固)。 | `HIGH` | | **BLOCKED_BY_WAF** | Web 应用防火墙拦截了测试。 | `LOW` | | **NOT_JOOMLA** | 目标似乎不是 Joomla! 站点。 | `CERTAIN` | | **ERROR** | 网络 / 连接 / 未处理的异常。 | `LOW` | ## 截图 ### 终端输出(卡片视图) ![终端截图占位符](https://raw.githubusercontent.com/Almavj/Joomla_CVE_2026_48907/master/assets/cve-1.jpg) ### Excel 报告 ![Excel 报告占位符](https://raw.githubusercontent.com/Almavj/Joomla_CVE_2026_48907/master/assets/cve-2.jpg) *提示:在本地测试用的 Joomla! 实例上运行扫描器以生成真实截图。将其提交到 `assets/` 文件夹中,它们将自动在 GitHub 上渲染显示。* ## 清理警告 此扫描器会**上传一个无害的 PHP 概念验证**到目标服务器以确认漏洞。该工具始终会在**扫描结束时打印提醒**,列出所有已上传的文件。**测试后您必须手动删除它们。** 这些文件命名为 `masta-{random}.xml.php` 或类似名称,并包含清晰的文本归属行: ``` masta-cve-2026-48907-poc. This test is done as part of Security Assessment - masta ghimau. ``` ## 作者与法律声明 - **作者:** Alma - **CVE:** CVE-2026-48907 - **用途:** 授权的 Joomla! JCE < 2.9.99.5 安全评估 使用本软件即表示您对自己的行为承担全部责任。本代码按“原样”提供,不提供任何保证。如果您不了解运行**侵入式** RCE 验证扫描器所带来的影响,请勿使用此工具。 ``` 🛡 Use it to protect your own assets. Not to harm others. ```
标签:CISA项目, Joomla, Python, Web安全, 加密, 无后门, 漏洞扫描器, 网络信息收集, 蓝队分析, 逆向工具