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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-71206-PoC — PoC: Shiori JWT CheckToken لا يعيد التحقق من حالة الحساب أبدًا (CVE-2026-71206، خطورة عالية 8.2) | Kitploit
أدوات/GitHubGitHub/nel-droid/cve-2026-71206-poc
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبالمصادقة
GitHubnel-droid/cve-2026-71206-poc

CVE-2026-71206-PoC

PoC: Shiori JWT CheckToken لا يعيد التحقق من حالة الحساب أبدًا (CVE-2026-71206، خطورة عالية 8.2)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-71206 — Shiori: دالة CheckToken الخاصة بـ JWT لا تعيد التحقق من حالة الحساب أبدًا

المنتج: go-shiori/shiori الملف: internal/domains/auth.go CWE: CWE-613 — انتهاء صلاحية الجلسة غير كافٍ CVSS 3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L — 8.2 (مرتفع) CNA: Turan Security · سجل CVE

الوصف

تتحقق دالة CheckToken في Shiori (internal/domains/auth.go) فقط من توقيع HMAC الخاص بـ JWT وتعيد كائن claims.Account المضمّن دون أي تعديل — فهي لا تعيد جلب الحساب من قاعدة البيانات عند كل طلب. لا توجد أي آلية لتخزين الجلسات أو لإبطال الرموز (token revocation) في أي مكان في قاعدة الكود.

التأثير

بمجرد إصدار JWT، يظل صالحًا تمامًا طوال فترة صلاحيته بغض النظر عمّا يحدث للحساب لاحقًا. إذا قام مسؤول بحذف مستخدم، أو خفّض صلاحياته، أو تم تغيير كلمة مرور المستخدم بعد الاشتباه في تعرضه للاختراق، فإن أي JWT صدر لذلك الحساب قبل هذا التغيير سيستمر في المصادقة بنجاح باستخدام الادعاءات (claims) الأصلية (الدور، معرّف الحساب، إلخ) المدمجة في الرمز — فلا توجد حالة على جانب الخادم لإبطاله.

إعادة الإنتاج

  1. سجّل الدخول كمستخدم والتقط JWT الصادر (على سبيل المثال عبر POST /api/v1/auth/login).
  2. كمسؤول، احذف الحساب أو خفّض دور المستخدم.
  3. أعد إرسال JWT الأصلي إلى أي نقطة نهاية تتطلب مصادقة:
    GET /api/bookmarks
    Authorization: Bearer <original JWT>
    
  4. ينجح الطلب باستخدام الادعاءات القديمة (stale claims) — لا يزال الحساب المحذوف/المخفّض الصلاحيات يمتلك وصولًا، لأن CheckToken لا يتحقق أبدًا من الحالة الحالية لقاعدة البيانات، بل يتحقق فقط من التوقيع.

السبب الجذري

تعتبر CheckToken أن حمولة (payload) JWT هي المصدر الموثوق لحالة الحساب بدلًا من التعامل معها كبيانات اعتماد من نوع Bearer يجب إعادة التحقق منها مقابل قاعدة البيانات (أو فحصها مقابل قائمة إبطال) عند كل استخدام.

التوصية بالإصلاح

أعد جلب الحساب بواسطة معرّفه في كل طلب موثّق (أو على الأقل تحقق من مخزن إبطال/جلسات مُفهرس بمعرّف الرمز (jti) ويُبطَل عند حذف الحساب أو تخفيض صلاحياته أو تغيير كلمة المرور) بدلًا من الثقة حرفيًا في الادعاءات المضمّنة.

تنزيل الأداة