
أداة إطار عمل لتقييم الأمان عبر سطر الأوامر لتطبيقات React وNext.js، تقوم بتحليل مكونات خادم React (React Server Components) بحثًا عن الأخطاء في التكوين، مع دعم فحص أهداف متعددة، واكتشاف جدار الحماية (WAF)، ودعم الوكيل (Proxy).
إطار عمل لتقييم أمن تطبيقات الويب لتطبيقات React و Next.js
هذه الأداة مصممة لاختبارات الأمان المصرح بها فقط.
المستخدمون مسؤولون وحدهم عن ضمان الامتثال لجميع القوانين المعمول بها.
ماسح React2Shell هو إطار عمل لتقييم الأمان عبر سطر الأوامر مصمم لمساعدة المتخصصين في الأمن على تحديد الثغرات الأمنية المحتملة في تطبيقات الويب المبنية على React و Next.js. يركز على تحليل تطبيقات React Server Components (RSC) بحثًا عن أخطاء التكوين الأمنية الشائعة.
| الميزة | الوصف |
|---|---|
| 🎯 فحص أهداف متعددة | فحص عناوين URL مفردة أو قوائم من الأهداف |
| 🔄 اختبار متزامن | متعدد الخيوط لتقييم فعال |
| 🛡️ كشف WAF | تحديد وتحليل استجابات جدار الحماية |
| 📊 تتبع التقدم | شريط تقدم مرئي باستخدام tqdm |
| 🔧 ترويسات قابلة للتكوين | حقن ترويسات مخصصة |
| 🌐 دعم الوكيل | التوجيه عبر وكلاء HTTP/HTTPS |
| 📝 صيغ الإخراج | إنشاء تقارير بصيغة JSON والنص |
| 🎨 واجهة CLI ملونة | مخرجات طرفية واضحة ومشفرة بالألوان |
# Clone repository
git clone https://github.com/wi3memake/React2Shell-Scanner.git
cd react2shell-scanner
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
requests>=2.28.0 # HTTP client library
tqdm>=4.64.0 # Progress bar visualization
urllib3>=1.26.0 # URL handling
# Single target
python react2shell.py.py -u https://example.com
# With verbose output
python react2shell.py.py -u https://example.com -v
# Scan from file
python react2shell.py.py -l targets.txt
# With concurrent threads
python react2shell.py.py -l targets.txt -t 10
# Custom headers
python react2shell.py.py -u https://example.com -H "Authorization: Bearer token"
# Through proxy
python react2shell.py.py -u https://example.com --proxy http://127.0.0.1:8080
# Skip SSL verification
python react2shell.py.py -u https://example.com --no-verify
# Output to file
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 | - | حجم حمولة التجاوز (كيلوبايت) | 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 # Main scanner script
├── requirements.txt # Python dependencies
└── README.md # Documentation
أنشئ ملفًا نصيًا يحتوي على عنوان 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
--proxy http://127.0.0.1:8080
# HTTPS Proxy
--proxy https://proxy.example.com:8443
# Authenticated Proxy
--proxy http://user:[email protected]:8080
# GitHub Actions example
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
# Run scanner
result = subprocess.run(
['python', 'react2shell.py.py', '-u', 'https://example.com', '-o', 'results.json'],
capture_output=True,
text=True
)
# Parse results
with open('results.json') as f:
findings = json.load(f)
انتهاء مهلة الاتصال
# Increase timeout
python react2shell.py.py -u https://example.com --timeout 30
أخطاء شهادة SSL
# Skip verification (testing only)
python react2shell.py.py -u https://example.com --no-verify
تحديد المعدل
# Reduce threads
python react2shell.py.py -l targets.txt -t 2
نرحب بالمساهمات التي تحسّن:
يرجى تقديم المشكلات وطلبات السحب على GitHub.
هذا المشروع مرخص بموجب رخصة MIT.
اختبار الأمان بكفاءة
🔒 اختبر دائمًا بمسؤولية 🔒