أداة استغلال RCE عن بعد لمكونات React Server Components
📖 مقدمة الأداة
أداة استغلال RCE عن بعد لمكونات React Server Components هي أداة اختبار أمان مصممة خصيصًا لاستغلال ثغرات تنفيذ الأكواد عن بُعد في إطارَي React Server Components و Next.js، وتوفّر واجهة تشغيل رسومية وتدعم أوضاع هجوم متعددة وميزة الفحص الجماعي.
⚠️ إخلاء مسؤولية: هذه الأداة مخصصة لاختبارات الأمان المصرّح بها ومسابقات CTF فقط، ويُحظر استخدامها في الهجمات غير القانونية. أي عواقب تنجم عن استخدام هذه الأداة يتحملها المستخدم وحده.
🎯 نطاق تأثر الثغرة
الإصدارات المتأثرة من React Server
- React Server 19.0.0
- React Server 19.0.1 (ملاحظة: بعض التصحيحات المبكرة لم تغطِ الثغرة بالكامل)
- React Server 19.1.* (جميع إصدارات 19.1.x)
- React Server 19.2.0
الإصدارات المتأثرة من Next.js
- Next.js v15.0.0 - v15.0.4
- Next.js v15.1.0 - v15.1.8
- Next.js v15.2.x - v15.5.6
- Next.js v16.0.0 - v16.0.6
- Next.js v14.3.0-canary.77 وما فوق من إصدارات Canary
المكونات الأخرى المتأثرة
- Dify - منصة تطوير تطبيقات الذكاء الاصطناعي
- NextChat - إطار عمل تطبيقات المحادثة
- التطبيقات الأخرى المبنية على إصدارات متأثرة من React Server Components أو Next.js
ملاحظة: إذا كان تطبيقك يستخدم أيًا من الإصدارات المذكورة أعلاه، يُنصح بترقيته فورًا إلى إصدار آمن أو اتخاذ الإجراءات الوقائية المناسبة.
✨ الميزات والخصائص
🎯 الوظائف الأساسية
- فحص الثغرة: فحص سريع لمعرفة ما إذا كان الهدف يحتوي على ثغرة RCE في React Server Components / Next.js
- عودة ناتج الأوامر: تنفيذ أوامر النظام مباشرةً والحصول على الناتج
- حقن حصان طروادة في الذاكرة: حقن Webshell دائم في الخادم الهدف
- Shell عكسي: الحصول على Shell تفاعلي للنظام الهدف
- الفحص الجماعي: دعم فحص عدة عناوين URL دفعةً واحدة لتحديد الأنظمة الضعيفة بسرعة
🔧 وظائف مساعدة
- دعم الوكيل: دعم تكوين وكيل HTTP (مثل Burp Suite) لتسهيل تحليل حركة المرور
- تخصيص الترويسات: إمكانية إضافة ترويسات طلب HTTP مخصصة لتجاوز الحمايات البسيطة
- سجل فوري: عرض سجل العمليات بشكل لحظي لتسهيل تتبّع عملية الاختبار
- إعداد المهلة: إمكانية تخصيص مهلة الطلب بما يناسب بيئات الشبكات المختلفة
🚀 البدء السريع
المتطلبات البيئية
- Java 8 أو إصدار أحدث
- نظام تشغيل Windows / Linux / macOS
تشغيل الأداة
-
انقر نقرًا مزدوجًا لتشغيل الملف React Server Components 远程RCE.jar
-
أو يمكن التشغيل عبر سطر الأوامر:
java -jar React Server Components 远程RCE.jar
-
عند أول تشغيل ستظهر رسالة إخلاء المسؤولية، يرجى قراءتها بعناية والموافقة عليها قبل متابعة الاستخدام
📋 دليل الاستخدام
1️⃣ الإعدادات الأساسية
قبل استخدام أي وظيفة، يجب تكوين المعلومات الأساسية أولًا:
- عنوان URL الهدف: إدخال عنوان موقع الويب المراد اختباره (مثال:
http://192.168.1.100:3000)
- مسار الهجوم: مسار التطبيق (الافتراضي:
/apps، ويمكن تعديله حسب الهدف)
- مهلة الطلب: عدد ثواني مهلة الطلب (الافتراضي: 30 ثانية)
- الترويسات المخصصة: اختيارية، كل ترويسة في سطر منفصل بالتنسيق
Header-Name: value
2️⃣ فحص الثغرة
- املأ عنوان URL الهدف والإعدادات الأساسية
- انقر على زر "اختبار الثغرة"
- انتظر نتيجة الفحص، وستقوم الأداة تلقائيًا بتحديد ما إذا كان الهدف يحتوي على الثغرة
تلميح: يُنصح بإجراء فحص الثغرة أولًا، والتأكد من وجود الثغرة في الهدف قبل القيام بأي عمليات لاحقة.
🎮 شرح أوضاع الهجوم بالتفصيل
الوضع الأول: عودة ناتج الأوامر
السيناريو المناسب: الحاجة إلى تنفيذ أوامر النظام وعرض نتائج التنفيذ
خطوات الاستخدام:
- انتقل إلى تبويب "عودة ناتج الأوامر"
- اكتب الأمر المراد تنفيذه في حقل إدخال الأوامر (مثال:
whoami، ipconfig، ls -la)
- انقر على زر "تنفيذ الأمر"
- شاهد نتيجة تنفيذ الأمر في منطقة النص أسفل الواجهة
أمثلة على أوامر شائعة:
- Windows:
whoami، ipconfig، dir، net user
- Linux:
whoami، ifconfig، ls -la، uname -a
الوضع الثاني: حقن حصان طروادة في الذاكرة
السيناريو المناسب: الحاجة إلى ترك باب خلفي دائم في الخادم الهدف
خطوات الاستخدام:
-
انتقل إلى تبويب "حقن حصان طروادة في الذاكرة"
-
عيّن مسار الوصول للحصان (مثال: /exec)
-
انقر على زر "حقن الحصان في الذاكرة"
-
بعد نجاح الحقن، يمكن تنفيذ الأوامر بالطريقة التالية:
الوصول إلى: http://العنوان_الهدف/exec?cmd=whoami
ملاحظات الاستخدام:
- يتم تسجيل الحصان في ذاكرة التطبيق الهدف، ولن يترك أي ملف على القرص
- سيفقد الحصان فعاليته بعد إعادة تشغيل الخادم
- يتم تمرير الأمر المراد تنفيذه عبر معامل URL
cmd
الوضع الثالث: Shell عكسي
السيناريو المناسب: الحاجة إلى الحصول على Shell تفاعلي للنظام الهدف
خطوات الاستخدام:
-
ابدأ الاستماع على جهازك المحلي (مثل استخدام netcat):
nc -lvnp 4444
-
انتقل إلى تبويب "Shell عكسي"
-
املأ عنوان IP للاستماع (عنوان IP لجهازك)
-
املأ منفذ الاستماع (مثال: 4444)
-
انقر على زر "إرسال الـ Shell العكسي"
-
ارجع إلى نافذة netcat وانتظر اتصال الـ Shell
ملاحظات هامة:
- تأكد من أن الخادم الهدف يمكنه الوصول إلى عنوان IP ومنفذ الاستماع لديك
- يجب أن يسمح جدار الحماية بالاتصالات الواردة على المنفذ المقابل
- في البيئات الفعلية قد تكون هناك قيود من سياسات الشبكة
الوضع الرابع: الفحص الجماعي
السيناريو المناسب: الحاجة إلى فحص الثغرة على عدة أهداف في وقت واحد
خطوات الاستخدام:
- انتقل إلى تبويب "الفحص الجماعي"
- اكتب قائمة عناوين URL الهدف في مربع النص (كل عنوان في سطر منفصل)
- انقر على زر "بدء الفحص"
- شاهد نتائج الفحص، وستقوم الأداة بتحديد الأهداف التي تحتوي على الثغرة
⚙️ الإعدادات المتقدمة
تكوين وكيل HTTP
يُستخدم لنقل حركة المرور إلى أدوات التقاط الحزم مثل Burp Suite، لتسهيل تحليل الطلبات والاستجابات.
خطوات التكوين:
- انقر على قائمة "الإعدادات" في الأعلى ← "إعدادات الوكيل"
- اختر "تمكين"
- املأ مضيف الوكيل (مثال:
127.0.0.1)
- املأ منفذ الوكيل (مثال:
8080)
- انقر على "حفظ"
إعدادات Burp Suite:
- تأكد من أن مستمع الوكيل في Burp Suite قد بدأ
- عنوان الاستماع الافتراضي:
127.0.0.1:8080
- يمكنك في Burp اعتراض وتعديل جميع الطلبات التي ترسلها الأداة
عرض حالة الوكيل:
- بعد اكتمال التكوين، ستظهر حالة الوكيل في الزاوية العلوية اليمنى من الواجهة
- الأخضر يعني أنه مفعّل، والرمادي يعني أنه غير مكوّن
🛡️ توصيات أمنية
- الاستخدام في بيئة مصرّح بها فقط: تأكد من حصولك على إذن صريح لاختبار الهدف
- لا تستخدمه في بيئة الإنتاج: تجنب التسبب في أضرار لأنظمة الإنتاج
- احمِ بيانات الاختبار: يجب الاحتفاظ بأي معلومات حساسة يتم الحصول عليها أثناء الاختبار بشكل آمن
- الامتثال للقوانين واللوائح: قد يؤدي اختبار الاختراق غير المصرّح به إلى مخالفة القانون
- الاستخدام في مسابقات CTF: هذه الأداة مناسبة للاستخدام في بيئات قانونية مثل CTF وميادين التدريب
❓ الأسئلة الشائعة
السؤال 1: ماذا أفعل عند ظهور رسالة "لم يتم اكتشاف ثغرة"؟
الأسباب المحتملة:
- عنوان URL الهدف غير صحيح أو الخدمة غير مشغّلة
- الهدف لا يحتوي على هذه الثغرة
- تكوين مسار الهجوم خاطئ
- الشبكة غير متصلة أو يتم حظر الاتصال بواسطة جدار الحماية
الحلول:
- تحقق من إمكانية الوصول إلى عنوان URL الهدف بشكل طبيعي
- جرّب تعديل معامل مسار الهجوم
- تحقق من اتصال الشبكة وإعدادات الوكيل
السؤال 2: لا تظهر نتيجة تنفيذ الأمر؟
الأسباب المحتملة:
- تم تنفيذ الأمر بنجاح ولكن بدون مخرجات (مثل بعض أوامر كتابة الملفات)
- قيود صلاحيات النظام الهدف
- خطأ في صياغة الأمر
الحلول:
- جرّب تنفيذ أمر بمخرجات واضحة (مثل
id)
- تحقق من صحة صياغة الأمر
- اطّلع على التفاصيل في منطقة السجل أسفل الواجهة
السؤال 3: فشل اتصال الـ Shell العكسي؟
الأسباب المحتملة:
- الهدف لا يمكنه الوصول إلى عنوان IP للاستماع لديك
- جدار الحماية يمنع الاتصال
- المنفذ مشغول
الحلول:
- تأكد من أن خدمة الاستماع قد بدأت (
nc -lvnp المنفذ)
- تحقق من إعدادات جدار الحماية واسمح بالمنفذ المقابل
- تأكد من صحة عنوان IP المدخل (إذا كان الهدف وجهازك على نفس الشبكة الداخلية، استخدم عنوان IP الداخلي)
السؤال 4: كيف يمكنني عرض تفاصيل الطلبات والاستجابات؟
الحلول:
- قم بتكوين وكيل HTTP (مثل Burp Suite)
- شاهد حركة HTTP كاملة في أداة الوكيل
- ستظهر أيضًا المعلومات الأساسية في منطقة السجل أسفل الواجهة
📞 الدعم الفني
- المؤلف: CrabSec
- الإصدار: v1.0.0
📜 بيان حقوق النشر