
Uma vulnerabilidade de segurança crítica, identificada como CVE-2023-50164 (CVE: 9.8), foi encontrada no Apache Struts, permitindo que atacantes manipulem parâmetros de upload de arquivos, o que pode potencialmente levar a travessia de caminho não autorizada e execução remota de código (RCE).
Uma vulnerabilidade de segurança crítica, identificada como CVE-2023-50164 (CVE: 9.8), foi encontrada no Apache Struts, permitindo que atacantes manipulem parâmetros de upload de arquivos, o que pode potencialmente levar a travessia de caminho não autorizada e execução remota de código (RCE).
Este script de exploit foi escrito para uma análise do CVE no vsociety.
Um aplicativo simples (dummy) foi desenvolvido para fins de demonstração (veja a pasta struts-app).
Você pode implantá-lo no Tomcat ou em qualquer outro servlet, ou executá-lo com mvn jetty:run.
Neste último caso, você pode acessar o aplicativo na porta 9999.
O script de exploit funciona apenas quando o aplicativo está implantado no Tomcat, pois o caminho de exploração consiste em enviar um webshell WAR.
No entanto, muitos outros caminhos de exploração podem funcionar no caso da mesma vulnerabilidade, dependendo das tecnologias utilizadas e de outras circunstâncias.
Implante o aplicativo de exploit no Docker:
docker container stop exploit
docker build -t exploit .
docker run -d --rm --name exploit -p 8080:8080 exploit
Instale os pacotes pip:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Em seguida, execute o script de exploit:
Para Docker:
python3 exploit.py --url http://localhost:8080/upload-1.0.0/upload.action
Para Vagrant:
python3 exploit.py --url http://192.168.56.25:8080/upload-1.0.0/upload.action
Observe que o exploit precisa de uma URL completa onde a funcionalidade de upload de arquivos esteja implementada.
Este script de exploit foi criado exclusivamente para fins de pesquisa e para o desenvolvimento de técnicas defensivas eficazes. Não se destina a ser usado para quaisquer atividades maliciosas ou não autorizadas. O autor e o proprietário do script se isentam de qualquer responsabilidade ou obrigação por mau uso ou danos causados por este software. Os usuários são instados a usar este software de forma responsável e somente em conformidade com as leis e regulamentos aplicáveis. Use com responsabilidade.