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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-29000-pac4j-jwt-auth-bypass — إثبات المفهوم (PoC) لثغرة تجاوز المصادقة التي تؤثر على التطبيقات التي تستخدم pac4j-jwt مع JWE (تشفير الويب JSON). | Kitploit
أدوات/GitHubGitHub/ptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass
تحليل الثغرات الأمنيةالاستغلالأمن الويبCTFاختبار الاختراقالمصادقة
GitHubptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass

CVE-2026-29000-pac4j-jwt-auth-bypass

إثبات المفهوم (PoC) لثغرة تجاوز المصادقة التي تؤثر على التطبيقات التي تستخدم pac4j-jwt مع JWE (تشفير الويب JSON).

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

الأكثر شعبية

عرض الكل →

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

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

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

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

HTB Principal — كتابة CVE-2026-29000

إخلاء مسؤولية: تم تطوير هذا الاستغلال حصريًا للجهاز المتقاعد "Principal" على منصة HackTheBox. لأغراض تعليمية فقط. لا تستخدمه ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

معلومات الجهاز

الحقلالتفاصيل
الاسمPrincipal
المنصةHackTheBox
الصعوبة—
الحالةمتقاعد

الثغرة — CVE-2026-29000

المكتبة المتأثرة: pac4j-jwt < 4.5.9 / 5.7.9 / 6.3.3
الخطورة: حرجة
النوع: تجاوز المصادقة

الملخص

يسمح خلل منطقي في JwtAuthenticator للمهاجم بتجاوز المصادقة عن طريق تغليف PlainJWT غير موقّع (alg=none) داخل JWE (JWT مشفّر).

عندما يقوم الخادم بفك تشفير JWE، يحاول تحليل الرمز الداخلي كـ SignedJWT. نظرًا لأن الرمز الداخلي هو PlainJWT، فإن كائن SignedJWT يكون فارغًا ويتم تخطي التحقق من التوقيع بالكامل. ثم يقوم الخادم ببناء ملف تعريف مستخدم من الادعاءات غير الموثقة — مما يسمح بانتحال شخصية أي مستخدم، بما في ذلك المسؤولين.

متطلبات الهجوم

  • المفتاح العام RSA للخادم (غالبًا ما يكون مكشوفًا عبر نقطة نهاية JWKS)
  • معرفة أسماء الادعاءات الداخلية (مثل الأدوار، تنسيق الموضوع)

تدفق الاستغلال

root@kitploit:~
صياغة ادعاءات خبيثة (sub=admin, role=ROLE_ADMIN)
        ↓
بناء PlainJWT غير موقّع (alg=none)
        ↓
تغليف PlainJWT داخل JWE باستخدام المفتاح العام RSA للخادم
        ↓
إرسال رمز JWE إلى الخادم
        ↓
يقوم الخادم بفك تشفير JWE → يجد PlainJWT → يتخطى فحص التوقيع → يمنح الوصول

الاستغلال

انظر exploit.py


الإصلاح

قم بترقية pac4j-jwt إلى إصدار مصحح:

  • 4.5.9 أو أحدث
  • 5.7.9 أو أحدث
  • 6.3.3 أو أحدث

أو ارفض صراحةً الرموز الداخلية PlainJWT بعد فك تشفير JWE:

root@kitploit:~
if (jwt instanceof PlainJWT) {
    throw new CredentialsException("PlainJWT not allowed inside JWE");
}

⚙️ تدفق الهجوم

  1. استرجاع المفتاح العام من:
root@kitploit:~

/api/auth/jwks

  1. صياغة JWT خبيث:
  • alg: none
  • حقن دور المسؤول
  1. التغليف داخل JWE باستخدام المفتاح العام

  2. الإرسال كـ:

root@kitploit:~

Authorization: Bearer <token>

  1. الحصول على وصول غير مصرح به

🛠️ استخدام إثبات المفهوم

تثبيت التبعيات

root@kitploit:~
pip install jwcrypto requests

تشغيل الاستغلال

root@kitploit:~
python3 poc.py \
--jwks-url http://target/api/auth/jwks \
--target http://target/api/dashboard

📤 مثال على الإخراج

root@kitploit:~
[+] Forged Token:
eyJhbGciOiJSU0EtT0FFUC0yNTYi...

[+] Browser Injection:
sessionStorage.setItem("auth_token", "eyJhbGciOiJSU0EtT0FFUC0yNTYi...")

[+] Status: 200
{"user":{"username":"admin","role":"ROLE_ADMIN"}}

🌐 استغلال المتصفح

افتح أدوات المطور ← وحدة التحكم:

root@kitploit:~
sessionStorage.setItem("auth_token", "<PASTE_TOKEN_HERE>")

ثم انتقل إلى:

root@kitploit:~
/dashboard

🔥 التأثير

  • تجاوز كامل للمصادقة
  • تصعيد الامتيازات إلى مسؤول
  • وصول غير مصرح به إلى واجهات برمجة التطبيقات
  • احتمالية الحركة الجانبية

🛡️ التخفيف

  • تحقق دائمًا من توقيعات JWT (JWS) بعد فك التشفير
  • ارفض الرموز ذات alg: none
  • فرض سياسات صارمة للتحقق من الرموز
  • لا تعتمد على التشفير وحده للثقة

👤 المؤلف

  • Doomsknight

المراجع

  • استشارة أمنية من pac4j
  • HackTheBox
تنزيل الأداة