
Prova de conceito do CVE-2022-22965 para o relatório CS4239
Prova de conceito para CVE-2022-22965 (Spring4Shell) para o relatório CS4239 G410. Adaptado de este PoC para demonstrar o comportamento sem correção e corrigido.
Há 2 programas de exemplo (dockerizados) neste repositório com código-fonte idêntico. Um usa uma versão vulnerável do Spring Boot, enquanto o outro usa uma versão corrigida. O Tomcat também lançou uma correção para esta vulnerabilidade, mas a mesma versão vulnerável do Tomcat é usada nesta demonstração para isolar os efeitos da correção do Spring.
Para executar os aplicativos de demonstração:
docker compose build
docker compose up
Para executar o exploit:
# vulnerable
python exploit.py --url "http://localhost:8080/helloworld/greeting"
# patched
python exploit.py --url "http://localhost:8081/helloworld/greeting"
Se o exploit funcionar, uma nova página que nos permite executar comandos estará presente. Exemplo de execução de id:
http://localhost:8080/shell.jsp?cmd=id
O exploit não funciona para a versão corrigida - shell.jsp não é injetado.