
Application Spring intentionnellement vulnérable pour tester CVE-2022-22965
Pour plus d'informations : https://www.fracturelabs.com/posts/effective-spring4shell-scanning-exploitation/
Le code suivant construira rapidement une image Docker vulnérable en utilisant les composants suivants :
git clone https://github.com/fracturelabs/spring4shell_victim.git
cd spring4shell_victim
docker image build -t spring4shell_victim .
docker container run -it -p 8080:8080 --name spring4shell_victim --rm spring4shell_victim
Il y a deux routes définies : /spring4shell_victim et /spring4shell_victim/vulnerable. Vous pouvez utiliser ceci pour vérifier que vos outils de scan fonctionnent correctement. La route par défaut (/) n'est intentionnellement pas vulnérable pour vous faire réfléchir à la configuration de vos outils de scan pour trouver les endpoints vulnérables.
# Cette route n'est pas vulnérable
curl -is localhost:9000/spring4shell_victim/?class.module.classLoader.URLs%5b-1%5d
# Cette route est vulnérable
curl -is localhost:9000/spring4shell_victim/vulnerable?class.module.classLoader.URLs%5b-1%5d

Vous pouvez vérifier que votre code a été déployé correctement en vous connectant à un shell sur le conteneur et en regardant dans le répertoire /usr/local/tomcat/webapps/.
docker exec -it spring4shell_victim /bin/bash
REMARQUE : Le code POC ci-dessus provoque uniquement un crash que vous pouvez détecter (erreur 500). Il ne télécharge pas réellement de code.