Outil d'exploitation de CVE-2023-26469
Aperçu
Il s'agit d'un outil d'exploitation (PoC) pour la version 1.0.0 de Jorani, qui permet à un attaquant d'exécuter du code à distance via un parcours de chemin et une injection de logs.
⚠️ Avertissement : cet outil est destiné uniquement à la recherche en sécurité et aux tests autorisés. L'utiliser sans autorisation pour des attaques est illégal.
Description de la vulnérabilité
CVE-2023-26469 est une vulnérabilité de sécurité critique dans Jorani 1.0.0, combinant les deux vecteurs d'attaque suivants :
- Injection de logs : injection de code PHP malveillant dans les fichiers journaux de l'application via le formulaire de connexion
- Parcours de chemin : exploitation d'une vulnérabilité de parcours de chemin pour accéder et exécuter les fichiers journaux injectés
Un attaquant peut utiliser cette vulnérabilité pour exécuter des commandes système arbitraires sur le serveur cible.
Fonctionnalités
- Obtention automatique du jeton CSRF
- Injection de code PHP malveillant dans les fichiers journaux
- Accès aux fichiers journaux via le parcours de chemin
- Fourniture d'un pseudo-terminal interactif pour exécuter des commandes système
- Prise en charge de l'environnement Windows (avec pyreadline3)
- Encodage automatique des commandes pour contourner la détection
Prérequis
- Python 3.x
- Bibliothèques dépendantes :
- requests
- pyreadline3 (environnement Windows)
Installation
pip install requests pyreadline3
Utilisation
python poc.py <cible_URL>
Exemple
python poc.py http://target-server.com
Exécution interactive de commandes
Après exécution réussie du script, une interface de pseudo-terminal s'ouvre dans laquelle vous pouvez exécuter des commandes système :
user@jorani(PSEUDO-TERM)
$ whoami
$ ls -la
$ cat /etc/passwd
Saisissez exit, quit ou x pour quitter le programme.
Fonctionnement
- Initialisation de la session : envoi d'une requête au serveur cible pour obtenir le cookie de session et le jeton CSRF
- Injection de code malveillant : utilisation du paramètre
language du formulaire de connexion pour effectuer un parcours de chemin et injecter du code PHP dans les fichiers journaux
- Déclenchement de l'exécution : accès à la page du fichier journal pour exécuter le code PHP injecté
- Exécution de commandes : transmission de commandes encodées en Base64 via un en-tête HTTP personnalisé pour obtenir les résultats
Détails techniques
- Utilisation de noms d'en-têtes HTTP générés aléatoirement pour contourner certains mécanismes de sécurité
- Les commandes sont transmises encodées en Base64
- Utilisation de l'en-tête
X-REQUESTED-WITH pour contourner la protection de redirection
- Génération automatique du nom du fichier journal cible en fonction de la date actuelle
Avertissement légal
Cet outil est destiné uniquement à des fins de recherche en sécurité et d'éducation. L'utilisateur doit :
- Utiliser cet outil uniquement sur des systèmes disposant d'une autorisation explicite
- Se conformer à toutes les lois et réglementations applicables
- Assumer l'entière responsabilité de toute conséquence découlant de l'utilisation de cet outil
L'auteur décline toute responsabilité en cas d'utilisation abusive ou illégale de cet outil.
Références
- CVE-2023-26469
- Site officiel de Jorani
Licence
Ce projet est destiné uniquement à des fins éducatives et de recherche en sécurité.