
rsc_infra_scan.py は、高速で非同期のPythonツールであり、Next.js App Router / React Server Components (RSC) 基盤と思われるドメインのフィンガープリンティングを行います。
このツールは、いかなる脆弱性も悪用しません。
受動的なHTTP/HTML/ヘッダーフィンガープリンティングのみを実行し、影響を受ける技術ファミリー(例:RSC関連のCVE)に該当する可能性のあるターゲットを特定するのに役立ちます。
このスキャナは、以下の脆弱性に対して脆弱である可能性のあるインフラを特定するために設計されています。
重要: このツールは、Next.js App Router / RSCテクノロジーを使用しているように見えるインフラを特定するだけです。特定のCVEが悪用可能かどうか、またはターゲットが脆弱なバージョンを実行しているかどうかを検証しません。適切なセキュリティテストとベンダーのアドバイザリを通じて、脆弱性のステータスを常に確認してください。
aiohttpを使用してドメインリストを同時にスキャンします。window.__next_f (Next.js App Router / RSC ランタイム)react-server-dom-webpackid="__next" コンテナx-nextjs-* レスポンスヘッダーContent-Type: text/x-component[+]マーク。[-]マーク。このツールは研究および防御的セキュリティテストを目的としています。許可なくシステムで使用しないでください。
このリポジトリをクローンまたはダウンロードします。
Pythonの依存関係をインストールします:
pip install aiohttp
Python 3.8以上がインストールされていることを確認してください。
rsc_infra_scan.pyと同じディレクトリにList.txtファイルを作成します。
#はコメントとして扱われます。List.txtの例:
# Example targets
example.com
https://subdomain.example.org
nextjs-demo.vercel.app
rsc_infra_scan.pyとList.txtを含むディレクトリからスキャナを実行します:
python rsc_infra_scan.py
スクリプトは:
List.txtを読み取ります。ヘッダー:
domain,status,is_rsc_like,score,signals_or_error
行の例:
example.com,[+],yes,75,HTML:(window|self)\.__next_f\s*=; HDR:x-nextjs-cache=HIT
legacy-site.org,[-],no,0,
bad-ssl.test,[-],ERROR,0,SSL: CERTIFICATE_VERIFY_FAILED
ここで:
status:
[+] (ANSI対応ターミナルでは緑色) → Next.js App Router / RSC スタイルのインフラを使用している可能性が高い。[-] (赤色) → 強いシグナルがない、またはエラー。is_rsc_like:
score >= 50の場合にyes。no。score:
signals_or_error:
HTML:...、HDR:...)、またはエラーメッセージ。スキャナはターゲットごとに1つのGETリクエストを送信し(HTTPSが失敗した場合はHTTPにフォールバック)、以下を検査します:
HTML本文
window.__next_f → 強力なNext.js App Router / RSCの指標。react-server-dom-webpack → RSCライブラリの参照。id="__next" → 一般的なNext.jsルートコンテナ。レスポンスヘッダー
x-nextjs-cachex-nextjs-matched-pathx-nextjs-pagex-nextjs-router-state-treeContent-Type: text/x-component各シグナルが全体のスコアに寄与します。スコアが50以上の場合、そのドメインは「RSC インフラ風」とみなされます。
注:これは脆弱性スキャナではありません。特定のCVE(CVE-2025-55182やCVE-2025-66478など)が悪用可能かどうかは判断できず、スタックが影響を受ける可能性のあるNext.js/RSCインフラのように見えるかどうかのみを示します。適切なセキュリティテストを通じて実際の脆弱性ステータスを常に確認し、公式のベンダーアドバイザリを参照してください。
本ツールが特定に役立つ脆弱性の詳細については、以下を参照してください:
このプロジェクトは教育および研究目的でのみ提供されます。
著者は、本ソフトウェアの誤用または損害について一切の責任を負いません。
本ツールを使用する際は、適用されるすべての法律および規制を遵守する責任はあなたにあります。