
cve-2026-48907 スキャナー
Joomla! JCE Editor < 2.9.99.5 向けシングルファイル・自己完結型スキャナ — 認証不要のリモートコード実行 (CVE-2026-48907)
作成者: Hussein Mohamed (masta ghimau)
[!CAUTION]
🚨 免責事項 — 使用前にお読みください
これは侵入的なセキュリティテストツールです。
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.
[!IMPORTANT] 「侵入的」であることが精度にとって重要な理由: 誤検知を排除し、可能な限り高い確信度を達成するため、このツールは実際に計算検証を行うペイロードテストを実行します。安全な PHP プルーフ・オブ・コンセプトの行をアップロードし、サーバーが返した正確な計算結果を検証することで、リモートコード実行を確認します。バージョン文字列だけを読み取る非侵入型スキャナは、バックポートされたパッチやカスタムホットフィックスを見落とす可能性があります。このツールは脆弱性が実際に存在することを検証します。 そのため、設計上侵入的です — 賢明に、完全な許可を得て使用してください。
masta-cve-2026-48907.py は、JCE Editor コンポーネントがバージョン 2.9.99.5 より古い Joomla! インスタンスの CVE-2026-48907 を検出するために設計された、完全にオリジナルな単一ファイルの Python スキャナです。
requests/httpx への依存なし。.py ファイル。openpyxl や rich がなくても動作しますが、インストールされていれば美しく表示されます。ThreadPoolExecutor で URL リスト全体をすばやくスキャン。.xlsx) レポートを自動生成。openpyxlrichその他はすべて 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. (Optional but recommended) install 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
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<br/>GET /, meta, manifest,<br/>static assets, README]
E1 --> F1{Joomla! detected?}
F1 -- No --> R1[Status: NOT_JOOMLA]
F1 -- Yes --> E2[probe_jce<br/>GET jce.xml, endpoints,<br/>JCE-specific markers]
E2 --> F2{JCE detected?}
F2 -- No --> R2[Status: SAFE<br/>JCE not installed]
F2 -- Yes --> F3{Version >= 2.9.99.5?}
F3 -- Yes --> R3[Status: PATCHED]
F3 -- No --> E3[extract_csrf<br/>Parse Joomla! CSRF token]
E3 --> F4{Token found?}
F4 -- No --> R4[Status: PATCHED<br/>CSRF missing → likely hardened]
F4 -- Yes --> E5[Build math-verifier payload<br/>masta-cve-2026-48907-poc ...]
E5 --> E6[Vector 1: Multipart POST<br/>profile_file upload to tmp/]
E6 --> F5{HTTP 200?}
F5 -- Yes --> E7["GET /tmp/masta-{rand}.xml.php"]
E7 --> F6{Body contains<br/>MATHOK:3105:END ?}
F6 -- Yes --> R5[Status: VULNERABLE<br/>Confidence: CONFIRMED]
F6 -- No --> E8[Vector 2: Browser chain<br/>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<br/>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
下の画像を実際のターミナルスクリーンショットに置き換えてください。

下の画像を実際の Excel レポートのスクリーンショットに置き換えてください。

ヒント: 実際のスクリーンショットを生成するには、ローカルのテスト用 Joomla! インスタンスに対してスキャナを実行してください。assets/ フォルダーにコミットすると、GitHub 上で自動的に表示されます。
このスキャナは、脆弱性を確認するために無害な PHP プルーフ・オブ・コンセプトをターゲットサーバーにアップロードします。このツールはスキャン終了時に、アップロードされたすべてのファイルをリストアップしたリマインダーを常に表示します。テスト後は必ず手動で削除してください。 これらのファイルは masta-{random}.xml.php または類似の名前で、以下の帰属を示す平文のテキスト行が含まれています:
masta-cve-2026-48907-poc. This test is done as part of Security Assessment - masta ghimau.
本ソフトウェアを使用することで、あなたは自身の行動に対する全責任を負うことを承認します。コードは保証なしで「現状のまま」提供されます。侵入的な RCE 検証スキャナを実行することの意味を理解していない場合は、このツールを使用しないでください。
🛡 Use it to protect your own assets. Not to harm others.
| 機能 | 説明 |
|---|
| 🔍 マルチソースフィンガープリンティング | メタタグ、マニフェスト、静的アセット、言語ファイル、JCE 固有のエンドポイントを介して Joomla! と JCE を検出 |
| 🛡 WAF 検出 | Cloudflare、Incapsula、Sucuri、ModSecurity によるブロックを識別 |
| 🧪 安全な侵入的 POC | 無害な PHP 数学検証ファイルをアップロード(帰属明記 + クリーンアップ用と明示的にラベル付け) |
| 📊 カードベースのターミナル UI | ターゲットごとにリッチな Panel + Table カード(または ANSI フォールバック) |
| 📁 Excel レポート | ヘッダー、固定ペイン、列幅、色分けされたステータスセルを備えた .xlsx を自動生成 |
| ⚙️ プロキシサポート | すべてのトラフィックを Burp / ZAP / 任意の HTTP プロキシ経由でルーティング |
| 🧵 スレッド対応 | 一括リスト用に設定可能なワーカースレッド数 |
| ステータス | 意味 | 信頼度 |
|---|
| VULNERABLE | PHP ペイロードが実行され、数学的証明が検証されました。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 |