
Preuve de concept pour CVE-2022-29464 permettant le téléversement de fichiers sans restriction et l'exécution de code à distance sur les produits WSO2 vulnérables, avec un shell JSP personnalisé pour l'exécution de commandes et l'exfiltration de fichiers.
Certains produits WSO2 permettent le téléchargement de fichiers sans restriction, avec pour conséquence une exécution de code à distance. L'attaquant doit utiliser un point de terminaison /fileupload avec une séquence de traversée de répertoire dans Content-Disposition pour atteindre un répertoire sous la racine web, tel qu'un répertoire ../../../../repository/deployment/server/webapps.
python3 main.py https://example.com shell.jsp
Remplacez https://example.com par le serveur vulnérable et shell.jsp par un nom de fichier que vous souhaitez utiliser pour le téléchargement.
Modifiez le fichier shell.jsp comme vous le souhaitez, mais le shell actuel fonctionne très bien aussi (mieux que les autres shells JSP, du moins).
Ce shell peut récupérer la sortie de stdout et stderr. Les commandes sont exécutées avec /bin/sh.
La plupart du temps, les administrateurs système exécutent les produits WSO2 en tant que superutilisateur. En utilisant cet exploit, vous disposerez de sur l'ensemble du système.
Les fichiers de base de données se trouvent dans le répertoire ~/repository/database.
Vous pouvez utiliser IntelliJ IDEA pour ouvrir les bases de données de type H2, comme ceci.
En utilisant cet exploit, vous pouvez copier n'importe quel fichier depuis n'importe quel répertoire vers ~/repository/deployment/server/webapps/authenticationendpoint. Le répertoire authenticationendpoint sert les JSP, mais peut aussi être utilisé pour servir d'autres fichiers.
Exemple :
cp ~/repository/database/WSO2CARBON_DB.h2.db ~/repository/deployment/server/webapps/authenticationendpoint/WSO2CARBON_DB.h2.db
Cette commande copiera le fichier principal de la base de données dans un répertoire à partir duquel nous pouvons le télécharger.
Je ne suis pas responsable d'une éventuelle guerre thermonucléaire ou de votre arrestation. Utilisez cet exploit uniquement dans un environnement de test.