
Exploit RCE automatisé pour Joomla JCE (CVE-2026-48907) avec shell interactif, exécution de commandes par lots, téléchargement de fichiers et prise en charge des proxys pour des tests d'intrusion autorisés.
Un utilitaire professionnel en ligne de commande pour les tests d'intrusion autorisés, la recherche de vulnérabilités contrôlée et la validation défensive.
Utilisation autorisée uniquement. Exécutez ce projet exclusivement contre des systèmes que vous possédez ou que vous êtes explicitement autorisé à tester. Utilisez un environnement de laboratoire contrôlé autant que possible.

JCEzploit est un utilitaire de recherche en sécurité en ligne de commande permettant d'évaluer la fonctionnalité d'importation de profils du composant Joomla Content Editor (JCE) dans des environnements où le testeur dispose d'une autorisation explicite. Il est conçu pour les testeurs d'intrusion professionnels, les chercheurs en sécurité et les défenseurs qui doivent reproduire et valider une condition d'exécution de code à distance signalée dans un cadre contrôlé.
Le projet fournit un flux de travail structuré en ligne de commande, une prise en charge de proxy configurable, plusieurs modes d'exécution, une sortie de diagnostic et une interface de session interactive. Il ne doit être utilisé que contre des cibles appartenant à l'opérateur ou couvertes par une autorisation de test écrite.
Note de publication : Avant de publier ou de distribuer ce README, vérifiez l'identifiant CVE du projet, la plage de versions affectées, la version corrigée, le statut de divulgation et la matrice de test auprès d'une source faisant autorité (fournisseur ou base de données de vulnérabilités). Les métadonnées ci-dessous reflètent les informations fournies avec le projet et ne doivent pas être considérées comme une confirmation indépendante de la vulnérabilité.
Ce logiciel peut provoquer un accès non autorisé, une exposition de données, une interruption de service ou une compromission du système lorsqu'il est utilisé contre une cible non approuvée. Les mainteneurs n'autorisent pas les tests de systèmes tiers, d'infrastructures publiques ou de systèmes sans permission documentée.
En utilisant ce projet, vous acceptez de :
Tester uniquement les systèmes pour lesquels vous disposez d'une autorisation écrite explicite.
Définir et respecter un périmètre approuvé, une fenêtre de test, une limite de débit et des règles d'engagement.
Éviter d'accéder à des données inutiles, de les modifier, de les exfiltrer ou de les conserver.
Arrêter immédiatement les tests si l'activité risque d'interrompre le service ou d'affecter des utilisateurs non impliqués.
Se conformer à toutes les lois, réglementations, contrats et politiques organisationnelles applicables.
Accepter la responsabilité des conséquences de votre utilisation du logiciel.
L'auteur et les contributeurs fournissent ce projet « tel quel » et ne sont pas responsables des utilisations abusives, des dommages, des pertes de données, des réclamations légales ou d'autres conséquences découlant de son utilisation.
Les détails suivants ont été fournis avec le projet et nécessitent une vérification indépendante avant d'être utilisés dans un avis de sécurité ou une évaluation en production.
| Champ | Détail fourni par le projet |
|---|---|
| Identifiant de vulnérabilité | CVE-2026-48907 |
| Problème signalé | Exécution de code à distance non authentifiée |
| Versions affectées signalées | JCE 1.0.0 à 2.9.99.4 |
| Version corrigée signalée | JCE 2.9.99.5 |
| Environnement de test fourni | Joomla 3.10.11, JCE 2.9.15, Apache 2.4, PHP 7.4 |
| Sévérité signalée | Critique ; compromission totale potentielle du système |
Pour un travail défensif, confirmez d'abord les versions de Joomla et de JCE déployées, obtenez l'autorisation, créez un plan de restauration et privilégiez une méthode de validation non destructive chaque fois que possible.
JCEzploit inclut les capacités suivantes telles que décrites dans les documents du projet :
| Domaine | Capacité |
|---|---|
| Flux de travail | Flux de travail automatisé de préparation des requêtes et de validation des vulnérabilités |
| Interface de session | Session de commandes interactive avec historique, complétion et sortie colorée |
| Modes d'exécution | Modes interactif, commande unique, lot, silencieux, verbeux et orienté débogage |
| Détection | Découverte de jeton CSRF avec plusieurs modèles de repli |
| Contrôle réseau | Prise en charge de proxy HTTP/HTTPS pour l'inspection contrôlée des requêtes |
| Fiabilité | Pool de connexions, délais d'attente et gestion des erreurs |
| Opérations sur fichiers | Fonctionnalité de récupération de fichiers pour les scénarios d'évaluation autorisés |
| Support de plateformes | Environnements Linux, macOS et Windows avec Python 3.6+ |
L'interface interactive prend en charge des commandes telles que les suivantes. N'utilisez que des commandes non destructives dans les environnements de test approuvés.
$> whoami # Display the execution identity
$> id # Display user and group information
$> pwd # Display the current working directory
$> exit # Close the session
| Exigence | Valeur minimale ou prise en charge |
|---|---|
| Python | 3.6 ou plus récent |
| Gestionnaire de paquets | pip |
| Systèmes d'exploitation | Linux, macOS ou Windows |
| Accès réseau | Requis uniquement pour installer les dépendances et atteindre une cible de test autorisée |
L'ensemble exact des dépendances est défini dans requirements.txt. Utilisez un environnement virtuel pour isoler les dépendances du projet du système hôte.
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
cd JCEzploit-CVE-2026-48907
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
chmod +x jcezploit.py
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
Set-Location JCEzploit-CVE-2026-48907
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
Si les stratégies d'exécution de PowerShell empêchent l'activation, consultez la politique de gestion des postes de votre organisation plutôt que d'affaiblir les contrôles de sécurité à l'échelle mondiale. Le script peut également être invoqué directement via l'interpréteur de l'environnement virtuel.
pip install pipenv
pipenv install requests rich
pipenv shell
python jcezploit.py --help
Si le dépôt contient un Dockerfile maintenu, construisez-le et exécutez-le dans un environnement de laboratoire isolé et autorisé :
docker build -t jcezploit .
docker run --rm -it jcezploit --help
Ne montez pas de répertoires hôtes sensibles, d'identifiants de production ou de réseau hôte sans restriction dans le conteneur.
Commencez toujours par examiner le périmètre de la cible et afficher l'aide intégrée :
python jcezploit.py --help
L'interface en ligne de commande fournie est résumée ci-dessous.
usage: jcezploit.py [-h] -u URL [--proxy PROXY] [-v] [-q]
[--cmd CMD] [--interactive] [--batch FILE]
[--no-confirm]
JCEzploit - Joomla JCE security testing utility
options:
-h, --help Show this help message and exit
-u, --url URL Authorized target base URL (required )
--proxy PROXY HTTP proxy, for example http://127.0.0.1:8080
-v, --verbose Enable diagnostic output
-q, --quiet Suppress non-essential output
--cmd CMD Execute one approved test command and exit
--interactive Start an interactive test session
--batch FILE Read approved test commands from a file
--no-confirm Skip the confirmation prompt; use only in automation
Les exemples suivants illustrent des modèles d'invocation. Remplacez la cible par un point de terminaison de laboratoire ou d'évaluation explicitement autorisé.
# Start an interactive assessment session.
python jcezploit.py --url http://authorized-lab.example --interactive
# Execute a low-impact identity check.
python jcezploit.py --url http://authorized-lab.example --cmd "id"
# Route requests through a local inspection proxy.
python jcezploit.py \
--url http://authorized-lab.example \
--proxy http://127.0.0.1:8080 \
--interactive \
--verbose
Créez un fichier de commandes contenant uniquement des étapes de validation non destructives préalablement approuvées :
# commands.txt
whoami
id
pwd
Exécutez le fichier de commandes contre la cible approuvée :
python jcezploit.py --url http://authorized-lab.example --batch commands.txt
Utilisez --verbose pour résoudre les problèmes de flux de requêtes dans un environnement contrôlé ou lors de la collecte de preuves pour un rapport d'évaluation. Utilisez --quiet lors de l'intégration de la sortie dans un pipeline d'automatisation approuvé. Évitez de stocker des secrets, des jetons de session, des corps de réponse ou des données personnelles dans des journaux partagés.
Le projet accepte une configuration en ligne de commande. La convention de variables d'environnement suivante peut être utilisée par des wrappers ou des runbooks locaux, à condition que l'implémentation la prenne explicitement en charge :
TARGET_URL=http://authorized-lab.example
PROXY=http://127.0.0.1:8080
VERBOSE=true
QUIET=false
Ne committez pas de fichiers .env, d'identifiants, de jetons, d'inventaires de cibles, de réponses capturées ou de résultats d'évaluation dans le contrôle de version. Ajoutez les fichiers de configuration locaux à .gitignore et utilisez un gestionnaire de secrets lorsque cela est approprié.
JCEzploit/
├── jcezploit.py # Main command-line program
├── requirements.txt # Runtime dependencies
├── README.md # Project documentation
├── LICENSE # MIT License
├── .gitignore # Ignored local and generated files
├── setup.sh # Optional setup helper
├── sample_commands.txt # Example command file
├── Dockerfile # Container build definition
├── verify.py # Dependency verification helper
└── docs/
├── vulnerability_details.md
├── pentest_guide.md
└── changelog.md
L'arborescence ci-dessus reflète la structure du projet fournie. Mettez-la à jour à chaque ajout, suppression ou renommage de fichiers.
Installez les dépendances de développement uniquement si le dépôt fournit un fichier requirements-dev.txt maintenu :
pip install -r requirements-dev.txt
python -m pytest tests/
Avant d'ouvrir une demande d'extraction, vérifiez que les modifications sont documentées, que les tests passent, que la gestion des erreurs reste claire et qu'aucune donnée de cible ni aucun secret n'est inclus dans les commits. Ajoutez des tests de régression pour l'analyse syntaxique, la validation des entrées, la gestion du proxy, le comportement des délais d'attente et les chemins de défaillance sûrs.
Une évaluation professionnelle doit utiliser un environnement de test dédié autant que possible. Effectuez une sauvegarde ou un instantané avant la validation, définissez une procédure d'arrêt d'urgence, surveillez l'état de l'application et de l'hôte et coordonnez-vous avec le propriétaire du système pendant toute la fenêtre de test.
L'outil ne doit pas être utilisé pour établir une persistance, déployer des logiciels malveillants supplémentaires, contourner la surveillance, accéder à des comptes non liés, extraire des fichiers sensibles ou effectuer des déplacements latéraux. La collecte de preuves doit être limitée à ce qui est nécessaire pour démontrer la découverte et doit respecter les exigences du client en matière de gestion des données.
Si un test révèle un problème jusqu'alors inconnu, ne publiez pas immédiatement les détails de l'exploit. Notifiez le fournisseur ou le projet concerné en privé, fournissez des preuves défensives reproductibles, laissez un délai raisonnable pour la remédiation et coordonnez toute divulgation publique. Consultez le Joomla Security Centre pour connaître les directives publiées du projet en matière de signalement de problèmes de sécurité.
Les contributions des professionnels de la sécurité et des développeurs qui soutiennent une recherche responsable et défensive sont les bienvenues. Veuillez ouvrir une issue avant toute modification importante afin que le périmètre et les attentes en matière de sécurité puissent être discutés.
Un flux de travail de contribution typique est le suivant :
git checkout -b feature/documentation-improvement
# Make and test your changes
git add .
git commit -m "Improve documentation"
git push origin feature/documentation-improvement
Les demandes d'extraction doivent expliquer le problème traité, décrire le changement, identifier la couverture des tests et documenter toute implication en matière de compatibilité ou de sécurité. Suivez la norme PEP 8 pour le code Python, privilégiez des messages d'erreur clairs, évitez d'intégrer des secrets et préservez les garanties d'utilisation éthique du projet.
Version initiale du projet.
Ajout du flux de travail de test de sécurité JCE signalé.
Ajout de la prise en charge de la session interactive.
Ajout de la fonctionnalité de récupération de fichiers pour les tests autorisés.
Ajout du traitement des commandes par lot.
Ajout de la prise en charge du proxy.
Ajout d'une sortie en ligne de commande enrichie.
Ajout de la prise en charge multiplateforme.
Élargir la couverture de validation défensive.
Améliorer les tests de compatibilité sur les versions prises en charge de Joomla et JCE.
Ajouter une sortie de rapport d'évaluation structurée.
Ajouter une validation des entrées plus stricte et un comportement par défaut plus sûr.
Ajouter des tests unitaires et d'intégration automatisés.
Fournir une configuration de laboratoire documentée pour une recherche reproductible.
Ce projet est distribué sous la licence MIT. Consultez LICENSE pour le texte complet de la licence.
MIT License
Copyright (c) 2024 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Sudeepa Wanigarathna
Chercheur en sécurité et testeur d'intrusion
Le projet doit être mis à jour avec un lien direct vers l'enregistrement de la vulnérabilité après que les métadonnées CVE ont été vérifiées indépendamment dans la 4. Des conseils généraux de test défensif sont disponibles dans la 3.
Utilisez ce projet de manière responsable, légale et uniquement avec une autorisation explicite.