Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-65945-poc — إثبات المفهوم لـ CVE-2025-65945 (التحقق غير السليم من التوقيع التشفيري في node-jws) | Kitploit
أدوات/GitHubGitHub/jedisct1/cve-2025-65945-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتشفيراختبار الاختراقالمصادقة
GitHubjedisct1/cve-2025-65945-poc

CVE-2025-65945-poc

إثبات المفهوم لـ CVE-2025-65945 (التحقق غير السليم من التوقيع التشفيري في node-jws)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-65945: تجاوز توقيع node-jws

هذا دليل على مفهوم لتجاوز التحقق من التوقيع في مكتبة node-jws. يسمح الخلل للمهاجمين بتزوير رموز JWT صالحة عندما يستمد الخادم أسرار HMAC من بيانات يتحكم فيها المستخدم.

ما هو الخلل؟

لا تتحقق الدالة jws.createVerify() من أن السر قد تم توفيره فعليًا عند استخدام خوارزميات HMAC. إذا كان تطبيقك يبحث عن الأسرار بناءً على شيء في JWT (مثل رأس kid) وفشل البحث، فقد ينتهي بك الأمر بالتحقق مقابل سر فارغ.

يمكن للمهاجم استغلال ذلك عن طريق:

  1. إرسال JWT بمعرف مفتاح مزيف غير موجود في قاعدة البيانات الخاصة بك
  2. توقيع الحمولة الضارة الخاصة بهم بسلسلة فارغة كسر
  3. يعيد بحث الخادم الخاص بك undefined، والذي يتم تحويله إلى سلسلة فارغة
  4. الآن يتفق الجانبان على "السر" (سلسلة فارغة)، وبالتالي يتم التحقق من التوقيع

يمكن للمهاجم الآن انتحال شخصية أي شخص أو منح نفسه صلاحيات المسؤول.

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

  • jws 3.2.2 والإصدارات الأقدم
  • jws 4.0.0

قم بالترقية إلى 3.2.3+ أو 4.0.1+ لإصلاح ذلك.

تشغيل دليل الإثبات

تأكد من تثبيت Bun، ثم:

# Install the vulnerable version
bun install [email protected]

# Run the exploit
bun run exploit.js

يجب أن ترى مخرجات تظهر رمز مسؤول مزور يتم قبوله كصالح.

ماذا يفعل دليل الإثبات؟

يحاكي دليل الإثبات خادمًا:

  • لديه مخزن أسرار يحتوي على عدد من مفاتيح API
  • يبحث عن الأسرار بناءً على رأس kid (معرف المفتاح) الخاص بـ JWT
  • يستخدم createVerify() مع واجهة البث

يقوم المهاجم بإنشاء JWT بـ kid: "non-existent-key" ويوقعه بسر فارغ. عندما يحاول الخادم البحث عن هذا المفتاح، يحصل على undefined، يكتب سلسلة فارغة إلى تدفق التحقق، ويمر الرمز المزور بالتحقق.

اختبار الإصلاح

# Upgrade to patched version
bun install [email protected]

# Run again - should fail now
bun run exploit.js

مع الإصدار المصحح، سترى خطأ: secret must be a string or buffer or a KeyObject. يتحقق الإصلاح من أن عمليات HMAC لها سر مناسب قبل المتابعة.

نمط الكود المعرض للخطر

إذا كان الكود الخاص بك يشبه هذا، فقد تكون متأثرًا:

const decoded = jws.decode(token);
const secret = lookupSecret(decoded.header.kid); // might return undefined!

const verifier = jws.createVerify({
  algorithm: "HS256",
  signature: token,
});

verifier.secret.write(secret); // oops
verifier.secret.end();

المراجع

  • تقرير GitHub الأمني
  • تثبيت الإصلاح
تنزيل الأداة