
scanner cve-2026-48907
Scanner autonome monofichier pour Joomla! JCE Editor < 2.9.99.5 — Exécution de code à distance non authentifiée (CVE-2026-48907)
Auteur : Alma
[!ATTENTION]
🚨 AVERTISSEMENT — LIRE AVANT UTILISATION
CE LOGICIEL EST UN OUTIL DE TEST DE SÉCURITÉ INTRUSIF.
CET OUTIL EST UNIQUEMENT DESTINÉ AUX ÉVALUATIONS DE SÉCURITÉ AUTORISÉES.
L'analyse de systèmes dont vous n'êtes PAS propriétaire ou pour lesquels vous n'avez PAS d'AUTORISATION ÉCRITE est ILLÉGALE dans la plupart des juridictions.
L'auteur (Hussein Mohamed masta ghimau) décline TOUTE responsabilité en cas d'utilisation abusive, de dommages, de poursuites judiciaires ou de perte de données découlant de l'utilisation de cet outil.
En exécutant ce scanner, vous acceptez de :
N'analyser que les actifs dont vous êtes PROPRIÉTAIRE ou pour lesquels vous avez un CONSENTEMENT ÉCRIT EXPLICITE.
Comprendre qu'un fichier PHP POC inoffensif est téléversé sur le serveur cible dans le cadre du contrôle de précision intrusif.
Supprimer manuellement chaque fichier POC téléversé immédiatement après utilisation.
UTILISATION À VOS PROPRES RISQUES.
[!IMPORTANT] Pourquoi l'aspect « intrusif » est crucial pour la précision : Afin d'atteindre la plus haute confiance possible et d'éliminer les faux positifs, cet outil effectue un test de charge utile par vérification mathématique en direct. Il téléverse une ligne PHP de preuve de concept sécurisée, puis confirme l'exécution de code à distance en vérifiant le résultat mathématique exact calculé renvoyé par le serveur. Les scanners non intrusifs qui ne lisent que les chaînes de version peuvent manquer des correctifs rétroportés ou des correctifs personnalisés. Cet outil vérifie que la vulnérabilité existe réellement. Par conséquent, il est intrusif par conception — à utiliser avec prudence et avec une autorisation complète.
masta-cve-2026-48907.py est un scanner Python totalement original et monofichier conçu pour détecter CVE-2026-48907 dans les instances Joomla! exécutant le composant JCE Editor antérieur à la version 2.9.99.5.
requests/httpx..py que vous pouvez placer n'importe où.openpyxl ou rich, mais s'affiche magnifiquement lorsqu'ils sont installés.ThreadPoolExecutor..xlsx) mis en forme avec des couleurs conditionnelles.| Fonctionnalité | Description |
|---|---|
| 🔍 Empreinte multi-source | Détecte Joomla! et JCE via les balises meta, les manifestes, les ressources statiques, les fichiers de langue et les points d'accès spécifiques à JCE |
| 🛡 Détection WAF | Identifie les blocages Cloudflare, Incapsula, Sucuri et ModSecurity |
| 🧪 POC intrusif sécurisé | Téléverse un vérificateur mathématique PHP inoffensif (attribué + explicitement étiqueté pour nettoyage) |
| 📊 Interface terminale par cartes | Cartes Panel + Table enrichies (ou repli ANSI) par cible |
| 📁 Rapport Excel | Fichier .xlsx généré automatiquement avec en-têtes, volets figés, largeurs de colonnes et cellules d'état codées en couleur |
| ⚙️ Prise en charge des proxy | Achemine tout le trafic via Burp / ZAP / tout proxy HTTP |
| 🧵 Threads | Threads de travail configurables pour les listes groupées |
openpyxl pour les rapports Excelrich pour les jolies cartes terminalesTout le reste fait partie de la bibliothèque standard Python (urllib, http.cookiejar, argparse, threading, etc.).
# 1. Cloner le dépôt
git clone https://github.com/YOUR_USERNAME/masta-cve-2026-48907.git
cd masta-cve-2026-48907
# 2. (Optionnel mais recommandé) installer les extras
pip install -r requirements.txt
Vous pouvez également exécuter le script directement sans rien installer (sortie terminal uniquement, pas de fichier 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 URL de la cible unique
-l FICHIER Fichier contenant les URL (une par ligne)
-o SORTIE Chemin personnalisé du fichier Excel
-t THREADS Threads simultanés (défaut : 5)
-p PROXY URL du proxy (ex : http://127.0.0.1:8080)
--timeout N Délai d'attente en secondes (défaut : 12)
--verify-ssl Active la vérification du certificat SSL (défaut : désactivé)
-v, --verbose Affiche les cartes de résultats complètes par cible pendant l'analyse
-d, --debug Affiche les traces internes des requêtes HTTP
--no-color Désactive la sortie colorée du terminal
Voici la logique d'analyse complète, de l'entrée au rapport final.
flowchart TD
A[L'utilisateur fournit -u URL ou -l FICHIER] --> B[Normaliser & dédupliquer les cibles]
B --> C[Lancer ThreadPoolExecutor]
C --> D[Pour chaque cible]
D --> E1[probe_joomla<br/>GET /, meta, manifeste,<br/>ressources statiques, README]
E1 --> F1{Joomla! détecté ?}
F1 -- Non --> R1[Statut : NOT_JOOMLA]
F1 -- Oui --> E2[probe_jce<br/>GET jce.xml, points d'accès,<br/>marqueurs spécifiques JCE]
E2 --> F2{JCE détecté ?}
F2 -- Non --> R2[Statut : SAFE<br/>JCE non installé]
F2 -- Oui --> F3{Version >= 2.9.99.5 ?}
F3 -- Oui --> R3[Statut : PATCHED]
F3 -- Non --> E3[extract_csrf<br/>Analyser le jeton CSRF de Joomla!]
E3 --> F4{Jeton trouvé ?}
F4 -- Non --> R4[Statut : PATCHED<br/>CSRF manquant → probablement durci]
F4 -- Oui --> E5[Construire la charge utile de vérification mathématique<br/>masta-cve-2026-48907-poc ...]
E5 --> E6[Vecteur 1 : POST multipart<br/>téléversement profile_file vers tmp/]
E6 --> F5{HTTP 200 ?}
F5 -- Oui --> E7["GET /tmp/masta-{rand}.xml.php"]
E7 --> F6{Le corps contient<br/>MATHOK:3105:END ?}
F6 -- Oui --> R5[Statut : VULNERABLE<br/>Confiance : CONFIRMÉE]
F6 -- Non --> E8[Vecteur 2 : Chaîne navigateur<br/>téléversement + renommage via RPC]
E8 --> F7{RCE confirmé ?}
F7 -- Oui --> R5
F7 -- Non --> E9[Vérifier la page de blocage WAF]
E9 --> F8{WAF détecté ?}
F8 -- Oui --> R6[Statut : BLOCKED_BY_WAF]
F8 -- Non --> R7[Statut : SAFE]
F5 -- Non --> E8
R1 --> S[Ajouter le résultat à Excel + carte terminale]
R2 --> S
R3 --> S
R4 --> S
R5 --> S
R6 --> S
R7 --> S
S --> D
D --> T[Afficher le tableau de bord récapitulatif]
T --> U[Sauvegarder le rapport Excel dans reports/]
U --> V[Afficher le rappel de nettoyage pour<br/>tous les fichiers POC téléversés]
style R5 fill:#ff0000,stroke:#333,color:#fff
style R3 fill:#32CD32,stroke:#333,color:#000
style R6 fill:#FFD700,stroke:#333,color:#000| Statut | Signification | Confiance |
|---|---|---|
| VULNERABLE | Charge utile PHP exécutée et preuve mathématique vérifiée. La RCE est réelle. | CONFIRMÉE |
| VULNERABLE_UPLOAD_ONLY | Fichier téléversé avec succès, mais l'exécution PHP a été bloquée. Exploitable mais RCE non confirmée. | HAUTE |
| PATCHED | Joomla! / JCE détecté(s) et version >= 2.9.99.5, ou CSRF durci. | HAUTE / MOYENNE |
| SAFE | JCE non installé, ou vecteurs d'exploitation échoués (probablement corrigé/durci). | HAUTE |
| BLOCKED_BY_WAF | Un pare-feu applicatif Web a bloqué le test. | FAIBLE |
| NOT_JOOMLA | La cible ne semble pas être un site Joomla!. | CERTAINE |
| ERROR | Problème réseau / connectivité / exception non gérée. | FAIBLE |
Remplacez l'image ci-dessous par votre capture d'écran réelle du terminal.
Emplacement de la capture d'écran du terminal
Remplacez l'image ci-dessous par votre capture d'écran réelle du rapport Excel.
Emplacement du rapport Excel
Astuce : exécutez le scanner sur une instance Joomla! de test locale pour générer de vraies captures d'écran. Intégrez-les dans le dossier assets/ et elles s'afficheront automatiquement sur GitHub.
Ce scanner téléverse un fichier PHP de preuve de concept inoffensif sur le serveur cible pour confirmer la vulnérabilité. L'outil affichera toujours un rappel à la fin de l'analyse listant tous les fichiers téléversés. Vous devez les supprimer manuellement après les tests. Ces fichiers sont nommés masta-{random}.xml.php ou similaire et contiennent la ligne d'attribution en texte clair :
masta-cve-2026-48907-poc. Ce test est effectué dans le cadre de l'évaluation de sécurité - masta ghimau.
En utilisant ce logiciel, vous reconnaissez l'entière responsabilité de vos actions. Le code est fourni « en l'état » sans aucune garantie. Si vous ne comprenez pas les implications de l'exécution d'un scanner intrusif de vérification de RCE, n'utilisez pas cet outil.
🛡 Utilisez-le pour protéger vos propres actifs. Pas pour nuire aux autres.