
cve-2026-48907-Scanner
Eigenständiger Scanner im Einzelfile-Format für Joomla! JCE Editor < 2.9.99.5 — Nicht authentifizierte Remote-Code-Ausführung (CVE-2026-48907)
Autor: Alma
[!CAUTION]
🚨 HAFTUNGSAUSSCHLUSS — VOR VERWENDUNG LESEN
DIES IST EIN EINGREIFENDES SICHERHEITSTEST-TOOL.
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] Warum „eingreifend“ für die Genauigkeit wichtig ist: Um die höchstmögliche Sicherheit zu erreichen und Fehlalarme zu vermeiden, führt dieses Tool einen Live-Mathe-Verifikations-Payload-Test durch. Es lädt eine harmlose PHP-Proof-of-Concept-Zeile hoch und bestätigt die Remote-Code-Ausführung, indem es das exakt berechnete mathematische Ergebnis vom Server überprüft. Nicht-eingreifende Scanner, die nur Versionszeichenfolgen lesen, können zurückportierte Patches oder benutzerdefinierte Hotfixes übersehen. Daher ist es von Grund auf eingreifend – nutzen Sie es mit Bedacht und nur mit voller Autorisierung.
masta-cve-2026-48907.py ist ein vollständig eigenständiger Python-Scanner im Einzelfile-Format, der CVE-2026-48907 in Joomla!-Instanzen mit JCE-Editor-Versionen älter als 2.9.99.5 erkennt.
requests/httpx-Abhängigkeit..py-Datei, die Sie überallhin legen können.openpyxl oder rich, sieht aber schön aus, wenn sie installiert sind.ThreadPoolExecutor..xlsx) mit bedingten Farben.| Funktion | Beschreibung |
|---|---|
| 🔍 Multi-Quellen-Fingerprinting | Erkennt Joomla! und JCE via Meta-Tags, Manifests, statische Assets, Sprachdateien und JCE-spezifische Endpunkte |
| 🛡 WAF-Erkennung | Identifiziert Cloudflare, Incapsula, Sucuri und ModSecurity-Blockaden |
| 🧪 Sicherer eingreifender POC | Lädt einen harmlosen PHP-Mathe-Verifizierer hoch (attribuiert und explizit zur Bereinigung gekennzeichnet) |
| 📊 Kartenbasiertes Terminal-UI | Rich Panel + Table-Karten (oder ANSI-Fallback) pro Ziel |
| 📁 Excel-Bericht | Automatisch erstellte .xlsx mit Kopfzeilen, eingefrorenen Fenstern, Spaltenbreiten und farbcodierten Statuszellen |
| ⚙️ Proxy-Unterstützung | Leiten Sie den gesamten Verkehr durch Burp/ZAP/jeden 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 usw.).
# 1. Repository klonen
git clone https://github.com/YOUR_USERNAME/masta-cve-2026-48907.git
cd masta-cve-2026-48907
# 2. (Optional, aber empfohlen) Zusatzpakete installieren
pip install -r requirements.txt
Sie können das Skript auch direkt ohne Installation ausführen (nur Terminalausgabe, 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 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
Im Folgenden ist der vollständige Scan-Prozess von der Eingabe bis zum endgültigen Bericht dargestellt.
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 | Sicherheit |
|---|---|---|
| VULNERABLE | PHP-Payload ausgeführt und Mathe-Beweis 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.
Terminal Screenshot Placeholder
Ersetzen Sie das folgende Bild durch Ihren tatsächlichen Excel-Bericht-Screenshot.
Excel Report Placeholder
Tipp: Führen Sie den Scanner gegen eine lokale Test-Joomla!-Instanz aus, um echte Screenshots zu erstellen. Committen Sie sie in den Ordner assets/ und sie werden auf GitHub automatisch angezeigt.
Dieser Scanner lädt eine harmlose PHP-Proof-of-Concept-Datei auf den Zielserver hoch, um die Schwachstelle zu bestätigen. Das Tool gibt am Ende des Scans immer einen Hinweis aus, der alle hochgeladenen Dateien auflistet. 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 Gewähr bereitgestellt. Wenn Sie die Auswirkungen der Ausführung eines eingreifenden RCE-Verifikationsscanners nicht verstehen, verwenden Sie dieses Tool nicht.
🛡 Verwenden Sie es, um Ihre eigenen Assets zu schützen. Nicht um anderen zu schaden.