
対象のWebサービス上でCVE-2025-55182およびCVE-2025-66478の存在を検出するスキャナー。
React Server Components(RSC)およびNext.jsのリモートコード実行脆弱性(CVE-2025-55182 & CVE-2025-66478)を検出するための、安全で非侵襲的なスキャナーです。
このスキャナーは、React Server ComponentsおよびNext.jsを使用するアプリケーションに影響を与えるReact2Shell脆弱性に対して、組織のWebサービスが脆弱かどうかを特定するのに役立ちます。この脆弱性により、攻撃者は特別に細工されたmultipartフォームデータを通じてリモートコード実行を達成できます。
重要: このスキャナーは安全なサイドチャネル検出方法のみを使用し、対象システム上でコードを実行しません。
安全な検出方法
柔軟なスキャンオプション
/_next、/api)出力オプション
pip install -r requirements.txt
または手動でインストール:
pip install requests tqdm urllib3
単一のURLをスキャン:
python scanner.py -u https://example.com
ファイルから複数のホストをスキャン:
python scanner.py -l hosts.txt
カスタムパスでスキャン:
python scanner.py -u https://example.com --path /_next --path /api
ファイルからパスを読み込んでスキャン:
python scanner.py -u https://example.com --path-file paths.txt
カスタムヘッダー:
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "X-Custom: value"
マルチスレッドスキャン:
python scanner.py -l hosts.txt -t 20
結果をJSONにエクスポート:
python scanner.py -l hosts.txt -o results.json
すべての結果をエクスポート(非脆弱なホストも含む):
python scanner.py -l hosts.txt -o results.json --all-results
Verboseモード(すべてのホストの詳細を表示):
python scanner.py -l hosts.txt -v
Quietモード(脆弱なホストのみ表示):
python scanner.py -l hosts.txt -q
色を無効化:
python scanner.py -l hosts.txt --no-color
1行に1ホストを指定します。#で始まる行は無視されます。
https://example.com
http://test.example.org
another-site.com
# This is a comment
1行に1パスを指定します。パスに/が含まれていない場合は、自動的に先頭に付加されます。
/_next
/api
/actions
# Comment lines are ignored
| オプション | 説明 |
|---|---|
-u, --url URL | スキャンする単一のURL |
-l, --list FILE | スキャンするホストの一覧を含むファイル |
-t, --threads N | 同時実行スレッド数(デフォルト: 10) |
--timeout N | リクエストタイムアウト(秒)(デフォルト: 10) |
-o, --output FILE | 結果の出力ファイル(JSON形式) |
--all-results | 脆弱なホストだけでなくすべての結果を保存 |
-k, --insecure | SSL証明書の検証を無効化 |
-H, --header HEADER | カスタムヘッダー(複数回使用可能) |
-v, --verbose | Verbose出力(すべてのホストの詳細を表示) |
-q, --quiet | Quietモード(脆弱なホストのみ表示) |
--no-color | カラー出力を無効化 |
--path PATH | テストするカスタムパス(複数回使用可能) |
--path-file FILE | テストするパスの一覧を含むファイル |
スキャナーは非侵襲的な検出方法を使用します:
JavaScriptエラーメッセージ
SyntaxError - フォームデータの不適切なJSONパーシングを示すUnexpected token - 脆弱なRSCデシリアライゼーションを示唆ReferenceError / TypeError - 安全でないオブジェクトプロパティアクセスを露呈RSC固有のエラーレスポンス
text/x-componentコンテンツタイプを伴うHTTP 500ステータスコードVary: RSC、Next-Router-State-Tree){"digest":"..."})$@、エラーオブジェクト)スキャナーは、詳細なエラーメッセージ(旧バージョン)と構造化されたRSCエラーレスポンス(新バージョン)の両方を検出し、さまざまなNext.js実装にわたって包括的なカバレッジを保証します。
重要: この方法は対象システム上でコードを実行しません。エラーレスポンスを観察することで、システムが脆弱かどうかのみを検出します。
python scanner.py -u https://myapp.com
# Create hosts file with all your domains
python scanner.py -l organization-hosts.txt -t 20 -o scan-results.json
# Create paths.txt with common Next.js endpoints
python scanner.py -l hosts.txt --path-file paths.txt -o results.json
python scanner.py -u https://myapp.com -H "Cookie: session=abc123" -H "Authorization: Bearer token"
スキャナーは以下の条件を検出した場合、ホストを**VULNERABLE(脆弱)**としてマークします:
スキャナーが脆弱性を検出した場合、以下のことを意味します:
0: 脆弱性が見つからなかった1: 1つ以上の脆弱性が検出された-t)を調整することアプリケーションに脆弱性が見つかった場合:
即時の対応:
長期的なセキュリティ対策:
参照:
このツールは許可されたセキュリティテスト専用です。コンピュータシステムへの不正アクセスは違法です。作者はこのプログラムによって引き起こされた誤用または損害について責任を負いません。