
Téléversement de fichier non authentifié → PoC RCE pour CVE-2026-57827 (RSFiles! Joomla < 1.17.12). Usage en recherche en sécurité autorisée uniquement.
Avertissement — utilisation autorisée uniquement. Ceci est une preuve de concept pour la recherche en sécurité et les tests défensifs. Vous êtes responsable de son utilisation uniquement sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite. Toute utilisation abusive contre des tiers sans consentement est illégale. Voir SECURITY.md pour la position en matière de divulgation responsable.
Exploit + détecteur autonome pour CVE-2026-57827 dans le composant RSFiles!
(com_rsfiles) pour Joomla, versions < 1.17.12 (corrigé dans
1.17.12, CVSS 9.8 / 10.0).
Le téléversement côté frontend est réparti sur deux tâches :
rsfiles.checkupload — contrôle préalable (permission + liste blanche d'extensions)rsfiles.upload — méthode d'écriture (aucun contrôle de permission, aucun contrôle du type de fichier, aucune protection CSRF)La tâche d'écriture peut être appelée directement, en contournant le contrôle préalable,
ce qui permet à un attaquant non authentifié de téléverser un fichier .php exécutable dans
un dossier public et de l'exécuter → RCE non authentifiée.
Tous les modules doivent se trouver dans le même répertoire (ils s'importent mutuellement).
python3 -m pip install -r requirements.txt # or just: pip install requests
python rsfiles_detect.py -t example.com
Host : example.com
RSFiles! : YES v1.17.11
Protocol : https
Status : VULNERABLE (below 1.17.12)
Multi-hôte :
python rsfiles_detect.py -f hosts.txt
python cve_2026_57827.py -t example.com
En cas de succès, l'outil affiche l'URL du shell avec son jeton aléatoire et la sortie de la commande — cette sortie est la preuve de la RCE.
python cve_2026_57827.py -f targets.txt --threads 30 -o shells.txt --csv report.csv
# Terminal 1 — start the mock (vulnerable)
python mock_server.py 8000 1.17.11
# Terminal 2 — scan it
python rsfiles_detect.py -t 127.0.0.1:8000
python cve_2026_57827.py -t 127.0.0.1:8000
1.17.11 / 1.17.10 = vulnérable · 1.17.12 = corrigé.
payload.py) : chaque comportement (gate, upload, exec, delete, list) est une petite fonction ; les noms des fonctions d'exécution sont encodés en base64 afin que des noms bruts comme system n'apparaissent pas dans les octets du fichier.cache7f31.php) au lieu des noms classiques de shells cachés de type fichier point.common.base_of().Style calqué sur les collections publiques d'exploits de composants Joomla (p. ex. incredibleindishell/joomla-vulnerabilities) et les analyses de l'avis de sécurité RSJoomla/mysites.guru pour cette CVE.
MIT — voir LICENSE. Usage recherche/défense uniquement.
| Fichier | Rôle |
|---|
cve_2026_57827.py | Exploit + scanner + CLI (point d'entrée) |
rsfiles_detect.py | Module de détection autonome (sans exploit) — dispose également de son propre CLI |
payload.py | Générateur de payload PHP modulaire et compact |
common.py | Client HTTP partagé, configuration et utilitaires |
mock_server.py | Simulation locale sûre pour les tests |
| Option | Description |
|---|
--threads N | Concurrence (par défaut 30) |
--proxy URL | Acheminer via un proxy (Burp/ZAP) |
--timeout N | Délai d'expiration par requête (secondes) |
--no-cleanup | Conserver le shell téléversé (par défaut : suppression automatique après la RCE) |
-o FILE | Enregistrer les URL de RCE |
--csv FILE | Rapport structuré complet |
--debug / -v | Journalisation verbeuse au niveau des requêtes |