
Aplicação Spring intencionalmente vulnerável para testar CVE-2022-22965
Para mais informações: https://www.fracturelabs.com/posts/effective-spring4shell-scanning-exploitation/
O código a seguir construirá rapidamente uma imagem Docker vulnerável usando os seguintes componentes:
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
Existem duas rotas definidas: /spring4shell_victim e /spring4shell_victim/vulnerable. Você pode usar isso para verificar se quaisquer ferramentas de varredura estão funcionando corretamente. A rota padrão (/) não é vulnerável especificamente para fazer você pensar em como configurar suas ferramentas de varredura para encontrar endpoints vulneráveis.
# This route is not vulnerable
curl -is localhost:9000/spring4shell_victim/?class.module.classLoader.URLs%5b-1%5d
# This route is vulnerable
curl -is localhost:9000/spring4shell_victim/vulnerable?class.module.classLoader.URLs%5b-1%5d

Você pode verificar se seu código foi implantado corretamente conectando-se a um shell no container e verificando o diretório /usr/local/tomcat/webapps/.
docker exec -it spring4shell_victim /bin/bash
NOTA: O código POC acima apenas causa uma falha que você pode detectar (erro 500). Ele não faz upload de nenhum código.