更多信息:https://www.fracturelabs.com/posts/effective-spring4shell-scanning-exploitation/
以下代码将使用下列组件快速构建一个存在漏洞的Docker镜像:
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
定义了两个路由:/spring4shell_victim 和 /spring4shell_victim/vulnerable。你可以利用它们验证扫描工具是否正常工作。默认路由 (/) 特意不设置漏洞,以促使你思考如何配置扫描工具来发现存在漏洞的端点。
# 该路由不存在漏洞
curl -is localhost:9000/spring4shell_victim/?class.module.classLoader.URLs%5b-1%5d
# 该路由存在漏洞
curl -is localhost:9000/spring4shell_victim/vulnerable?class.module.classLoader.URLs%5b-1%5d

你可以通过连接容器上的shell并查看 /usr/local/tomcat/webapps/ 目录来验证代码是否部署正确。
docker exec -it spring4shell_victim /bin/bash
注意:上述POC代码只会导致一个你能够检测到的崩溃(500错误)。它实际上不会上传任何代码。