
CVE-2022-22965をテストするための、意図的に脆弱なSpringアプリ
詳細情報: 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
2 つのルートが定義されています: /spring4shell_victim と /spring4shell_victim/vulnerable。これを使用して、スキャンツールが正しく機能していることを確認できます。デフォルトルート (/) は意図的に脆弱ではなく、スキャンツールを設定して脆弱なエンドポイントを検出する方法を考えるためのものです。
# 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

コンテナのシェルに接続し、/usr/local/tomcat/webapps/ ディレクトリを確認することで、コードが正しくデプロイされたことを検証できます。
docker exec -it spring4shell_victim /bin/bash
注: 上記の POC コードは、検出可能なクラッシュ (500 エラー) を引き起こすだけで、実際にはコードをアップロードしません。