React2Shell (CVE-2025-55182) استغلال
نص برمجي بلغة بايثون يوفر شل تفاعلية لاستغلال ثغرة RCE الحرجة (CVE-2025-55182) في مكونات React Server Components وتطبيقات Next.js الضعيفة.
يستهدف هذا الاستغلال عيوب إلغاء التسلسل التي تسمح بتنفيذ الأكواد عن بُعد دون مصادقة. يتضمن نظامًا وحدات لإضافة تقنيات تجاوز WAF.
[!NOTE] تم تصميم هذا الاستغلال للتفاعل مع نقطة نهاية بروتوكول RSC الضعيفة. يتم التقاط نتائج التنفيذ عبر آلية استجابة الخادم. الأوامر التي لا تنتج مخرجات ستعيد
(empty).
[!CAUTION] هذا الكود مخصص لأغراض البحث والتعليم فقط. ويهدف إلى المساعدة في فهم واكتشاف وإصلاح ثغرة CVE-2025-55182. لا تستخدمه ضد الأنظمة دون إذن صريح.
استخدام هذا النص البرمجي يكون على مسؤولية المستخدم، ولا يتحمل المؤلف(ون) أي مسؤولية عن أي إساءة استخدام أو عواقب غير مقصودة.
باستخدام هذا الكود، يقر المستخدم ويوافق على ما يلي:
- يتحمل المستخدم وحده المسؤولية عن أي عواقب قانونية تنشأ عن استخدام هذا النص البرمجي.
- لن يتحمل المؤلف(ون) المسؤولية تجاه المستخدم عن أي أضرار أو خسائر أو إجراءات قانونية ناتجة عن استخدام هذا الكود.
- يوافق المستخدم على الامتثال لجميع القوانين واللوائح المعمول بها.
- يقر المستخدم بأن استخدام هذا النص البرمجي ضد الأنظمة دون إذن قد ينتهك القوانين وشروط الخدمة، مما قد يؤدي إلى عقوبات شديدة.
- يُنصح المستخدم باستشارة مستشاره القانوني الخاص قبل استخدام هذا الكود.
يتميز هذا الاستغلال بنظام وحدات ديناميكي لتجاوز WAF. يتم تخزين الوحدات في دليل waf_modules كملفات بايثون منفصلة. يجب على كل وحدة تعريف دالة modify_request(body, headers) تأخذ جسم الطلب الافتراضي والرؤوس، وتعدلها حسب الحاجة للتجاوز، وتعيد body, headers الجديد.
bypass_custom.py) في دليل waf_modules يحتوي على دالة modify_request.--help لرؤية خيارات التجاوز المتاحة (مثل --bypass-custom لـ bypass_custom.py). استخدم العلم المقابل لتفعيل الوحدة.مثال: تم تضمين وحدة bypass_vercel.py كمثال، تنفذ تقنيات قد تكون فعالة ضد نشرات Vercel.
--modify-request)يسمح النص البرمجي بالتعديل المباشر لبعض سمات كائن requests.Session المستخدم في إجراء طلبات HTTP. يوفر هذا تحكمًا دقيقًا في جوانب مثل التحقق من SSL، ومهلات الانتظار، وربما إعدادات أخرى على مستوى الجلسة.
--modify-request <KEY> <VALUE>. <KEY> يقابل سمة من سمات كائن requests.Session (مثل verify, timeout).<VALUE>: true/false يصبحان قيمتين منطقيتين، السلاسل الرقمية تصبح أعدادًا صحيحة أو أعدادًا عشرية، وإلا تبقى سلسلة نصية.--modify-request verify True--modify-request verify False (معادل للعلم القديم --insecure)python CVE-2025-55182.py --help-modify-request للحصول على تمثيل شجري للخيارات الشائعة.requirements.txt)python -m venv venv و source venv/bin/activate على أنظمة شبيهة بيونكس أو venv\Scripts\activate على ويندوز).
pip install -r requirements.txt
waf_modules:
mkdir waf_modules
bypass_vercel.py) داخل هذا الدليل.إعداد بيئة ضعيفة (للاختبار فقط):
docker run --rm -p 127.0.0.1:3000:3000 ghcr.io/l4rm4nd/cve-2025-55182:latest
مزيد من المعلومات: https://github.com/l4rm4nd/CVE-2025-55182
تشغيل النص البرمجي:
python CVE-2025-55182.py --help # لرؤية جميع الخيارات، بما في ذلك تجاوزات WAF
# مثال مع وحدة تجاوز:
python CVE-2025-55182.py --host 127.0.0.1 --port 3000 --endpoint / --bypass-vercel
إذا لم تستخدم وسائط سطر الأوامر، فسيطلب النص البرمجي بشكل تفاعلي المضيف والمنفذ ونقطة النهاية.
التفاعل مع الشل:
exit أو quit لإنهاء جلسة الشل.