Single-file Python-Scanner für CVE-2026-48907 (Joomla JCE Editor RCE). Erkennt Joomla/JCE, führt intrusiven mathematisch verifizierten Payload-Test durch, unterstützt Bulk-Threaded-Scanning, WAF-Erkennung und generiert formatierte Excel-Berichte.
Einzelfeld, eigenständiger Scanner für Joomla! JCE Editor < 2.9.99.5 — Nicht authentifizierte Remote-Code-Ausführung (CVE-2026-48907)
Autor: Hussein Mohamed (masta ghimau)
[!CAUTION]
🚨 HAFTUNGSAUSSCHLUSS — VOR DER VERWENDUNG LESEN
DIES IST EIN INTRUSIVES SICHERHEITSTEST-TOOL.
DIESES TOOL IST AUSSCHLIESSLICH FÜR AUTORISIERTE SICHERHEITSBEWERTUNGEN BESTIMMT.
Das Scannen von Systemen, die Sie NICHT besitzen oder für die Sie KEINE SCHRIFTLICHE ERLAUBNIS zum Testen haben, ist in den meisten Rechtsordnungen ILLEGAL.
Der Autor (Hussein Mohamed masta ghimau) lehnt JEGLICHE Haftung für Missbrauch, Schäden, rechtliche Schritte oder Datenverlust ab, die aus der Nutzung dieses Tools entstehen.
Mit der Ausführung dieses Scanners erklären Sie sich damit einverstanden:
Nur Anlagen zu scannen, die SIE BESITZEN oder für die Sie eine EXPLIZITE SCHRIFTLICHE EINWILLIGUNG haben.
Sie verstehen, dass im Rahmen der intrusiven Genauigkeitsprüfung eine harmlose POC-PHP-Datei auf den Zielserver hochgeladen wird.
Löschen Sie jede hochgeladene POC-Datei sofort nach der Nutzung manuell.
NUTZUNG AUF EIGENES RISIKO.
[!IMPORTANT] Warum „intrusiv“ für die Genauigkeit wichtig ist: Um die höchstmögliche Sicherheit zu erreichen und Fehlalarme zu vermeiden, führt dieses Tool einen Live-Mathematik-Verifikations-Payload-Test durch. Es lädt eine sichere PHP-Proof-of-Concept-Zeile hoch und bestätigt dann die Remote-Code-Ausführung, indem es das exakte berechnete mathematische Ergebnis des Servers überprüft. Nicht-intrusive Scanner, die nur Versionsstrings lesen, können zurückportierte Patches oder benutzerdefinierte Hotfixes übersehen. Dieses Tool verifiziert, dass die Schwachstelle tatsächlich existiert. Daher ist es von Natur aus intrusiv — nutzen Sie es mit Bedacht und mit voller Autorisierung.
masta-cve-2026-48907.py ist ein vollständig origineller, einzelfeld Python-Scanner zum Erkennen von CVE-2026-48907 in Joomla!-Instanzen, die die JCE-Editor-Komponente in Versionen älter als 2.9.99.5 ausführen.
requests/httpx-Abhängigkeit..py-Datei, die Sie überall ablegen können.openpyxl oder rich, sieht aber schön aus, wenn sie installiert sind.ThreadPoolExecutor..xlsx)-Berichte mit bedingten Farben.| Funktion | Beschreibung |
|---|---|
| 🔍 Multi-Source-Fingerprinting | Erkennt Joomla! und JCE über Meta-Tags, Manifeste, statische Assets, Sprachdateien und JCE-spezifische Endpunkte |
| 🛡 WAF-Erkennung | Identifiziert Cloudflare-, Incapsula-, Sucuri- und ModSecurity-Blockaden |
| 🧪 Sicheres intrusives POC | Lädt einen harmlosen PHP-Mathematik-Verifizierer hoch (gekennzeichnet + explizit für Bereinigung markiert) |
| 📊 Terminal-UI mit Karten | Rich Panel + Table-Karten (oder ANSI-Fallback) pro Ziel |
| 📁 Excel-Bericht | Automatisch erzeugte .xlsx mit Kopfzeilen, eingefrorenen Fenstern, Spaltenbreiten und farbcodierten Statuszellen |
| ⚙️ Proxy-Unterstützung | Leiten Sie den gesamten Verkehr durch Burp / ZAP / einen beliebigen HTTP-Proxy |
| 🧵 Threaded | Konfigurierbare Worker-Threads für Bulk-Listen |
openpyxl für Excel-Berichterich für hübsche Terminal-KartenAlles andere ist Python-Standardbibliothek (urllib, http.cookiejar, argparse, threading, etc.).
# 1. Repository klonen
git clone https://github.com/YOUR_USERNAME/masta-cve-2026-48907.git
cd masta-cve-2026-48907
# 2. (Optional, aber empfohlen) Extras installieren
pip install -r requirements.txt
Sie können das Skript auch direkt ohne Installation ausführen (nur Terminal-Ausgabe, kein 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 Ziel-URL (einzeln)
-l DATEI Datei mit URLs (eine pro Zeile)
-o AUSGABE Benutzerdefinierter Excel-Ausgabepfad
-t THREADS Gleichzeitige Threads (Standard: 5)
-p PROXY Proxy-URL (z.B. http://127.0.0.1:8080)
--timeout N Timeout für Anfragen in Sekunden (Standard: 12)
--verify-ssl SSL-Zertifikatsprüfung aktivieren (Standard: deaktiviert)
-v, --verbose Zeige vollständige Ergebnis-Karten pro Ziel während des Scans
-d, --debug Zeige interne HTTP-Anfragespuuren
--no-color Farbige Terminalausgabe deaktivieren
Nachfolgend die vollständige Scanlogik von der Eingabe bis zum endgültigen Bericht.
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| Status | Bedeutung | Vertrauensniveau |
|---|---|---|
| VULNERABLE | PHP-Payload ausgeführt und Mathematik-Nachweis verifiziert. RCE ist echt. | CONFIRMED |
| VULNERABLE_UPLOAD_ONLY | Datei erfolgreich hochgeladen, aber PHP-Ausführung blockiert. Ausnutzbar, aber RCE nicht bestätigt. | HIGH |
| PATCHED | Joomla! / JCE erkannt und Version ist >= 2.9.99.5, oder CSRF ist gehärtet. | HIGH / MEDIUM |
| SAFE | JCE nicht installiert oder Exploit-Vektoren fehlgeschlagen (wahrscheinlich gepatcht/gehärtet). | HIGH |
| BLOCKED_BY_WAF | Eine Web Application Firewall hat den Test blockiert. | LOW |
| NOT_JOOMLA | Ziel scheint keine Joomla!-Seite zu sein. | CERTAIN |
| ERROR | Netzwerk-/Verbindungs-/nicht behandelte Ausnahme. | LOW |
Ersetzen Sie das folgende Bild durch Ihren tatsächlichen Terminal-Screenshot.

Ersetzen Sie das folgende Bild durch Ihren tatsächlichen Excel-Berichts-Screenshot.

Tipp: Führen Sie den Scanner gegen eine lokale Test-Joomla!-Instanz aus, um echte Screenshots zu erzeugen. Speichern Sie sie im Ordner assets/ und sie werden automatisch auf GitHub gerendert.
Dieser Scanner lädt eine harmlose PHP-Proof-of-Concept auf den Zielserver hoch, um die Schwachstelle zu bestätigen. Das Tool gibt am Ende des Scans stets eine Erinnerung aus, in der alle hochgeladenen Dateien aufgelistet werden. Sie müssen diese nach dem Test manuell löschen. Diese Dateien heißen masta-{random}.xml.php oder ähnlich und enthalten die Klartext-Attributionszeile:
masta-cve-2026-48907-poc. This test is done as part of Security Assessment - masta ghimau.
Durch die Nutzung dieser Software übernehmen Sie die volle Verantwortung für Ihre Handlungen. Der Code wird „wie besehen“ ohne jegliche Gewährleistung bereitgestellt. Wenn Sie die Auswirkungen der Ausführung eines intrusiven RCE-Verifizierungs-Scanners nicht verstehen, verwenden Sie dieses Tool nicht.
🛡 Nutzen Sie es, um Ihre eigenen Anlagen zu schützen. Nicht, um anderen zu schaden.