React Server Components リモートRCEエクスプロイトツール
📖 ツール概要
React Server Components リモートRCEエクスプロイトツールは、React Server Components および Next.js フレームワークのリモートコード実行脆弱性に特化したセキュリティテストツールです。グラフィカルな操作インターフェースを提供し、複数の攻撃モードとバッチ検出機能をサポートします。
⚠️ 免責事項:本ツールは、許可されたセキュリティテストおよびCTF競技でのみ使用してください。不正な攻撃に使用することは固く禁じられています。本ツールを使用した結果生じたいかなる結果も、使用者が単独で責任を負うものとします。
🎯 脆弱性の影響範囲
React Server の影響を受けるバージョン
- React Server 19.0.0
- React Server 19.0.1(注:一部の初期パッチでは完全にカバーされていません)
- React Server 19.1.* (すべての 19.1.x バージョン)
- React Server 19.2.0
Next.js の影響を受けるバージョン
- Next.js v15.0.0 - v15.0.4
- Next.js v15.1.0 - v15.1.8
- Next.js v15.2.x - v15.5.6
- Next.js v16.0.0 - v16.0.6
- Next.js v14.3.0-canary.77 以降の Canary バージョン
その他の影響を受けるコンポーネント
- Dify - AI アプリケーション開発プラットフォーム
- NextChat - チャットアプリケーションフレームワーク
- 影響を受けるバージョンの React Server Components または Next.js に基づいて構築されたその他のアプリケーション
注意:アプリケーションが上記のいずれかのバージョンを使用している場合は、直ちに安全なバージョンにアップグレードするか、適切な保護措置を講じることをお勧めします。
✨ 機能特長
🎯 コア機能
- 脆弱性検出:ターゲットに React Server Components / Next.js RCE 脆弱性が存在するか迅速に検出
- コマンドエコー:システムコマンドを直接実行し、結果を取得
- メモリシェル注入:ターゲットサーバーに永続化された Web シェルを注入
- リバースシェル:ターゲットシステムのインタラクティブシェルを取得
- バッチスキャン:複数のターゲット URL をバッチ検出し、脆弱なシステムを迅速に特定
🔧 補助機能
- プロキシサポート:HTTP プロキシ(Burp Suite など)の設定をサポートし、トラフィック解析を容易に
- カスタムリクエストヘッダー:カスタム HTTP リクエストヘッダーを追加し、簡易的な防御をバイパス
- リアルタイムログ:操作ログをリアルタイム表示し、テストプロセスの追跡を容易に
- タイムアウト設定:リクエストタイムアウトをカスタマイズ可能、さまざまなネットワーク環境に対応
🚀 クイックスタート
環境要件
- Java 8 以降
- Windows / Linux / macOS オペレーティングシステム
ツールの起動
-
React Server Components 远程RCE.jar ファイルをダブルクリックして実行
-
またはコマンドラインで起動:
java -jar React Server Components 远程RCE.jar
-
初回起動時に免責事項が表示されます。よく読んで同意した後に使用を続けてください。
📋 使用ガイド
1️⃣ 基本設定
機能を使用する前に、基本情報を設定する必要があります:
- ターゲットURL:テストするターゲットウェブサイトのアドレスを入力(例:
http://192.168.1.100:3000)
- 攻撃パス:アプリケーションのパス(デフォルト:
/apps、ターゲットに応じて調整可能)
- タイムアウト時間:リクエストタイムアウト秒数(デフォルト:30秒)
- カスタムリクエストヘッダー:オプション、1行につき1つ、形式は
Header-Name: value
2️⃣ 脆弱性検出
- ターゲットURLと基本設定を入力
- 「脆弱性テスト」ボタンをクリック
- 検出結果を待ち、ツールが自動的にターゲットに脆弱性が存在するか判断
ヒント:最初に脆弱性検出を行い、ターゲットに脆弱性が存在することを確認してから後続の操作を行うことをお勧めします。
🎮 攻撃モードの詳細
モード1:コマンドエコー
適用シナリオ:システムコマンドを実行し、実行結果を確認する必要がある場合
使用手順:
- 「コマンドエコー」タブに切り替え
- コマンド入力ボックスに実行するコマンドを入力(例:
whoami、ipconfig、ls -la)
- 「コマンド実行」ボタンをクリック
- 下のテキスト領域でコマンド実行結果を確認
よく使うコマンド例:
- Windows:
whoami、ipconfig、dir、net user
- Linux:
whoami、ifconfig、ls -la、uname -a
モード2:メモリシェル注入
適用シナリオ:ターゲットサーバーに永続化されたバックドアを残す必要がある場合
使用手順:
-
「メモリシェル注入」タブに切り替え
-
メモリシェルのアクセスパスを設定(例:/exec)
-
「メモリシェル注入」ボタンをクリック
-
注入が成功したら、次の方法でコマンドを実行:
アクセス:http://ターゲットアドレス/exec?cmd=whoami
使用上の注意:
- メモリシェルはターゲットアプリケーションのメモリに登録され、ディスクにファイルは残りません
- サーバー再起動後、メモリシェルは無効になります
- URLパラメータ
cmd で実行するコマンドを渡します
モード3:リバースシェル
適用シナリオ:ターゲットシステムのインタラクティブシェルを取得する必要がある場合
使用手順:
-
ローカルマシンでリスナーを起動(例:netcat を使用):
-
「リバースシェル」タブに切り替え
-
リスナーIP(自分のマシンのIPアドレス)を入力
-
リスナーポート(例:4444)を入力
-
「リバースシェル送信」ボタンをクリック
-
netcat ウィンドウに戻り、シェル接続を待機
注意事項:
- ターゲットサーバーがリスナーのIPとポートにアクセスできることを確認してください
- ファイアウォールで対応するポートのインバウンド接続を許可する必要があります
- 実際の環境では、ネットワークポリシーの制限を受ける可能性があります
モード4:バッチ検出
適用シナリオ:複数のターゲットに対して脆弱性を一括スキャンする必要がある場合
使用手順:
- 「バッチ検出」タブに切り替え
- テキストボックスにターゲットURLのリストを入力(1行に1つ)
- 「スキャン開始」ボタンをクリック
- スキャン結果を確認。ツールは脆弱性が存在するターゲットにマークを付けます
⚙️ 詳細設定
HTTPプロキシの設定
トラフィックを Burp Suite などのキャプチャツールに転送し、リクエストとレスポンスを解析しやすくするために使用します。
設定手順:
- 上部メニュー「設定」→「プロキシ設定」をクリック
- 「有効」を選択
- プロキシホストを入力(例:
127.0.0.1)
- プロキシポートを入力(例:
8080)
- 「保存」をクリック
Burp Suite 設定:
- Burp Suite のプロキシリスナーが起動していることを確認
- デフォルトのリスナーアドレス:
127.0.0.1:8080
- Burp でツールが送信するすべてのリクエストをインターセプトおよび変更可能
プロキシステータスの確認:
- 設定完了後、インターフェース右上にプロキシのステータスが表示
- 緑色は有効、灰色は未設定を示します
🛡️ セキュリティの推奨事項
- 許可された環境でのみ使用:ターゲットをテストするには明確な許可が必要です
- 本番環境では使用しない:本番システムに損害を与えないようにしてください
- テストデータを保護:テスト中に取得した機密情報は適切に保管してください
- 法令を遵守:許可のない侵入テストは法律違反となる可能性があります
- CTF競技での使用:本ツールは CTF、標的型演習などの合法的な環境での使用に適しています
❓ よくある質問
Q1: 「脆弱性が検出されませんでした」と表示される場合の対処法
考えられる原因:
- ターゲットURLが正しくない、またはサービスが起動していない
- ターゲットに脆弱性が存在しない
- 攻撃パスの設定が間違っている
- ネットワークが不通、またはファイアウォールでブロックされている
解決方法:
- ターゲットURLに正常にアクセスできるか確認
- 攻撃パスのパラメータを調整してみる
- ネットワーク接続とプロキシ設定を確認
Q2: コマンド実行にエコーがない場合
考えられる原因:
- コマンドは正常に実行されたが、出力がない(ファイル書き込みなど一部のコマンド)
- ターゲットシステムの権限制限
- コマンドの構文エラー
解決方法:
- 明確な出力があるコマンド(
id など)を試す
- コマンド構文が正しいか確認
- 下部のログ領域の詳細情報を確認
Q3: リバースシェルの接続に失敗する場合
考えられる原因:
- ターゲットがリスナーIPにアクセスできない
- ファイアウォールが接続をブロック
- ポートが使用中
解決方法:
- リスナーサービスが起動していることを確認(
nc -lvnp ポート)
- ファイアウォール設定を確認し、対応するポートを許可
- IPアドレスが正しく入力されていることを確認(ターゲットと同じ内部ネットワークの場合は内部IPを使用)
Q4: 詳細なリクエストとレスポンスを確認する方法
解決方法:
- HTTPプロキシ(Burp Suite など)を設定
- プロキシツールで完全なHTTPトラフィックを確認
- 下部のログ領域にも重要な情報が表示されます
📞 テクニカルサポート
📜 著作権表示
本ツールは、学習および許可されたセキュリティテストのためにのみ提供されます。本ツールを使用したことにより生じるすべての結果は使用者が単独で負担するものとし、開発者は一切の責任を負いません。
サイバーセキュリティ法および関連法規を遵守し、倫理的なセキュリティ研究者になりましょう!
テストが順調に進むことを願っています! 🎉