
Exploit éducatif pour CVE-2023-50164 (Apache Struts 2) démontrant une traversée de chemin et une exécution de code à distance via un téléchargement de fichier malveillant, conçu pour les environnements de laboratoire de HackTheBox.
Cet exploit a été développé spécifiquement pour le laboratoire Strutted de HackTheBox, visant à exploiter la vulnérabilité CVE-2023-50164 dans Apache Struts 2. La faille permet un path traversal via une faille dans le traitement des paramètres de téléchargement de fichiers. L'exploit a été créé dans le but de montrer comment un attaquant peut effectuer un téléchargement de fichiers malveillants et obtenir une exécution de code à distance (RCE).
Cet exploit a été développé exclusivement à des fins éducatives dans l'environnement contrôlé de HackTheBox et ne doit pas être utilisé sur des systèmes réels sans autorisation explicite. L'exploitation de vulnérabilités sans consentement est illégale et contraire à l'éthique.
L'objectif de cet exploit est de montrer comment la faille dans Apache Struts 2, en particulier au niveau du point de terminaison de téléchargement de fichiers, peut être exploitée pour :
La vulnérabilité CVE-2023-50164 est associée à un traitement incorrect des paramètres de téléchargement de fichiers, permettant à un attaquant de manipuler le nom du fichier envoyé pour effectuer un path traversal.
Manipulation du paramètre HTTP : L'exploit modifie les paramètres HTTP pour inclure des caractères de traversal de répertoire (../), permettant le téléchargement d'un fichier malveillant dans un dossier non autorisé.
Envoi du fichier malveillant : L'exploit envoie un fichier malveillant en utilisant la méthode POST sur le point de terminaison /upload.action, en exploitant la faille de sensibilité à la casse des paramètres HTTP.
Exécution de code à distance : L'attaquant peut insérer du code malveillant qui sera exécuté sur le serveur après le téléchargement.
Voici un exemple de requête HTTP pouvant être utilisée pour exploiter la vulnérabilité :
POST /upload.action HTTP/1.1
Host: vulnerable-server.com
Content-Type: multipart/form-data; boundary=------------------------abcdef
--------------------------abcdef
Content-Disposition: form-data; name="Upload"; filename="img.png"
Content-Type: application/octet-stream
PNG
--------------------------abcdef
Content-Disposition: form-data;
Content-Type: application/octet-stream
../../shell.jsp
--------------------------abcdef--