
コマンドライン型のセキュリティ評価フレームワークで、ReactおよびNext.jsアプリケーションを対象とし、React Server Componentsの設定ミスを分析します。マルチターゲットスキャン、WAF検出、プロキシサポートを備えています。
React および Next.js アプリケーション向け Web アプリケーションセキュリティ評価フレームワーク
このツールは、許可されたセキュリティテスト専用に設計されています。
ユーザーは、適用されるすべての法律への準拠を確保する責任を負います。
React2Shell Scanner は、セキュリティ専門家が React および Next.js Web アプリケーションの潜在的な脆弱性を特定するのに役立つように設計された、コマンドラインのセキュリティ評価フレームワークです。React Server Components (RSC) の実装を分析し、一般的なセキュリティ設定ミスを検出することに重点を置いています。
| 機能 | 説明 |
|---|---|
| 🎯 マルチターゲットスキャン | 単一 URL またはターゲットリストをスキャン |
| 🔄 並行テスト | 効率的な評価のためのマルチスレッド |
| 🛡️ WAF 検出 | WAF 応答の識別と分析 |
| 📊 進捗トラッキング | tqdm による視覚的なプログレスバー |
| 🔧 設定可能なヘッダー | カスタムヘッダーインジェクション |
| 🌐 プロキシサポート | HTTP/HTTPS プロキシ経由のルーティング |
| 📝 出力形式 | JSON およびテキストレポートの生成 |
| 🎨 カラフルな CLI | 明確で色分けされたターミナル出力 |
# リポジトリのクローン
git clone https://github.com/wi3memake/React2Shell-Scanner.git
cd react2shell-scanner
# 仮想環境の作成(推奨)
python -m venv venv
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows
# 依存関係のインストール
pip install -r requirements.txt
requests>=2.28.0 # HTTP クライアントライブラリ
tqdm>=4.64.0 # プログレスバー表示
urllib3>=1.26.0 # URL 処理
# 単一ターゲット
python react2shell.py.py -u https://example.com
# 詳細出力付き
python react2shell.py.py -u https://example.com -v
# ファイルからスキャン
python react2shell.py.py -l targets.txt
# 並行スレッド付き
python react2shell.py.py -l targets.txt -t 10
# カスタムヘッダー
python react2shell.py.py -u https://example.com -H "Authorization: Bearer token"
# プロキシ経由
python react2shell.py.py -u https://example.com --proxy http://127.0.0.1:8080
# SSL 検証をスキップ
python react2shell.py.py -u https://example.com --no-verify
# ファイルに出力
python react2shell.py.py -u https://example.com -o results.json
| 引数 | 短縮形 | 説明 | デフォルト |
|---|---|---|---|
--url | -u | 単一ターゲット URL | - |
--list | -l | ターゲット URL を含むファイル | - |
--threads | -t | 並行スレッド数 | 5 |
--timeout | - | リクエストタイムアウト(秒) | 10 |
--proxy | - | プロキシ URL (http/https) | - |
--headers | -H | カスタムヘッダー | - |
--output | -o | 出力ファイルパス | - |
--no-verify | - | SSL 検証をスキップ | False |
--verbose | -v | 詳細出力 | False |
--waf-bypass | - | WAF バイパスモード | False |
--bypass-size | - | バイパスペイロードサイズ (KB) | 128 |
React2Shell Web Application Security Assessment Framework
[*] Starting assessment of https://example.com
[*] Analyzing React Server Components...
[*] Testing redirect behavior...
[+] Assessment complete
Target: https://example.com
Status: Analyzed
Response Code: 200
Server: Next.js
React Version: 18.2.0
RSC Detected: Yes
Assessment Time: 1.23s
{
"target": "https://example.com",
"timestamp": "2025-01-15T10:30:00Z",
"results": {
"status_code": 200,
"server": "Next.js",
"rsc_detected": true,
"headers": {
"content-type": "text/html",
"x-powered-by": "Next.js"
},
"assessment_time": 1.23
}
}
React2Shell-Scanner/
├── react2shell.py.py # メインスキャナースクリプト
├── requirements.txt # Python 依存関係
└── README.md # ドキュメント
1 行に 1 つの URL を含むテキストファイルを作成します:
https://target1.com
https://target2.com
https://target3.com/api
-H フラグを繰り返して複数のヘッダーを渡します:
python react2shell.py.py -u https://example.com \
-H "Authorization: Bearer token123" \
-H "X-Custom-Header: value" \
-H "Cookie: session=abc123"
# HTTP プロキシ
--proxy http://127.0.0.1:8080
# HTTPS プロキシ
--proxy https://proxy.example.com:8443
# 認証付きプロキシ
--proxy http://user:[email protected]:8080
# GitHub Actions の例
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run security scan
run: python react2shell.py.py -u ${{ secrets.TARGET_URL }} -o results.json
import subprocess
import json
# スキャナーの実行
result = subprocess.run(
['python', 'react2shell.py.py', '-u', 'https://example.com', '-o', 'results.json'],
capture_output=True,
text=True
)
# 結果の解析
with open('results.json') as f:
findings = json.load(f)
接続タイムアウト
# タイムアウトを増やす
python react2shell.py.py -u https://example.com --timeout 30
SSL 証明書エラー
# 検証をスキップ(テストのみ)
python react2shell.py.py -u https://example.com --no-verify
レート制限
# スレッド数を減らす
python react2shell.py.py -l targets.txt -t 2
以下の改善を歓迎します:
GitHub で issue とプルリクエストを送信してください。
このプロジェクトは MIT ライセンスの下でライセンスされています。
効率的なセキュリティテスト
🔒 常に責任を持ってテストしましょう 🔒