
CVE-2023-50164 Un attaquant peut manipuler les paramètres de téléversement de fichiers pour permettre une traversée de chemins et, dans certaines circonstances, cela peut conduire au téléversement d'un fichier malveillant pouvant être utilisé pour effectuer une exécution de code à distance. Il est recommandé aux utilisateurs de mettre à niveau vers les versions Struts 2.5.33 ou Struts 6.3.0.2 ou supérieures pour corriger ce problème.
Une vulnérabilité de sécurité critique, identifiée sous le nom CVE-2023-50164 (CVE : 9,8) a été trouvée dans Apache Struts, permettant aux attaquants de manipuler les paramètres de téléchargement de fichiers, ce qui peut potentiellement conduire à un parcours de chemin non autorisé et à une exécution de code à distance (RCE).
Une application de test simple est développée pour l'analyse de la CVE
Construisez d'abord l'application avec la commande docker build :
docker build -t exploitable -f DOCKERFILE .
Ensuite, exécutez l'application avec la commande docker run :
docker run -p 8080:8080 exploitable
Dans ce cas, vous pouvez accéder à l'application sur le port 8080
Vous pouvez le déployer sur Tomcat ou tout autre servlet, ou l'exécuter avec mvn jetty:run. Dans ce cas, vous pouvez accéder à l'application sur le port 9999. Le script d'exploitation fonctionne uniquement lorsque l'application est déployée sur Tomcat, car le chemin d'exploitation consiste à télécharger un webshell WAR. Cependant, de nombreux autres chemins d'exploitation peuvent fonctionner dans le cas de la même vulnérabilité, en fonction des technologies utilisées et d'autres circonstances.
Installez les paquets PIP :
pip install requests requests_toolbelt
Ensuite, vous pouvez modifier le chemin en fonction de l'URL de votre application et exécuter la commande ci-dessous :
python exploit.py --url http://localhost:8080/upload.action
Il est recommandé d'exécuter l'application et l'exploit sur un hôte Windows. L'exploit peut parfois ne pas fonctionner sur les systèmes basés sur *nix.
Ce script d'exploit a été créé à des fins de recherche. Il n'est pas destiné à être utilisé pour des activités malveillantes ou non autorisées.