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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
joomla-levels-api — Joomla 6.1.3 - عالي - عن بُعد - ACL - GET /api/v1/users/levels يكشف مستويات العرض | Kitploit
أدوات/GitHubGitHub/abraxas/joomla-levels-api
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقأمن واجهات برمجة التطبيقاتمختبرات وتدريب عملي
GitHubabraxas/joomla-levels-api

joomla-levels-api

Joomla 6.1.3 - عالي - عن بُعد - ACL - GET /api/v1/users/levels يكشف مستويات العرض

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - joomla-levels-api

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  joomla-levels-api

joomla-levels-api

الفئة: صلاحية متبقية الوصول: عن بُعد

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

يتطلب مسار Administrator Users -> Viewing Access Levels امتلاك core.admin على com_users (LevelController::allowSave والحذف). خدمة Groups webservice تفعل الشيء نفسه بالفعل (GroupsController، 6.1.1). لا يحتوي LevelsController على أي تجاوز لـ allowAdd أو allowEdit أو delete، لذا يسمح ApiController بمرور core.manage بالإضافة إلى core.create.

يمكن لرمز API من فئة Manager، مُمنوح core.login.api بدون core.admin، إنشاء مستويات وصول للعرض تحظرها واجهة المستخدم.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية / تجاوز التفويض
الوصولعن بُعد (رمز API مع core.login.api)
CWECWE-863
CVSSمتوسط: 6.1 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
المنتجJoomla CMS
المتأثر6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
المصادقةرمز API لـ Manager (المجموعة 6) مع core.login.api وcom_users manage/create/edit. بدون core.admin. القيمة الافتراضية لـ core.login.api هي Super User فقط.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

استخدام رمز API لغير Super User لتغيير أي المجموعات ترى أي الصفحات. لا يصبحون Super User من هذه الصلاحية المتبقية وحدها. هذه سيطرة على ظهور المحتوى، وليست استيلاءً على الموقع.

الصلاحيةالطريقة / المسارالنوعمُثبت مختبريًا أم مُستنتج
إنشاء مستوى وصول للعرضPOST /api/index.php/v1/users/levels JSON title، rules (معرّفات المجموعات)سلامةمُثبت مختبريًا. HTTP 200، #__viewlevels id=7، العنوان poc-level-JOOMLA-LEVELS-API-WITNESS
تعديل مستوى موجود (قائمة المجموعات / العنوان)PATCH /api/index.php/v1/users/levels/{id}سلامةمُستنتج. نفس المتحكم، بدون allowEdit. المختبر أنشأ فقط.
حذف مستوىDELETE /api/index.php/v1/users/levels/{id}سلامة / توافر صفوف ACLمُستنتج. نفس التجاوز المفقود. المختبر لم ينفّذ DELETE.
كشف مقال أو وحدة أو عنصر قائمة للأعضاء فقطمستوى جديد أو مُعدّل تتضمن rules الخاصة به Public / Guest / Registeredاستطلاع (ظهور المحتوى)مُستنتج من #__viewlevels.rules. المختبر أدرج الصف؛ ولم يُعد ضبط ACL لمقال مباشر.
إخفاء صفحة عن Registered، أو إضافة مجموعة المهاجم إلى مستوى Specialنفس PATCH / الإنشاءسلامةمُستنتج. نفس المخزن.
تعديل مجموعات المستخدمين من APIPOST /api/index.php/v1/users/groupsلا ينطبقمُثبت مختبريًا مغلق. HTTP 403 (GroupsController core.admin)
فتح Users -> Viewing Access Levels في لوحة الإدارةGET /administrator/index.php?option=com_users&view=levelsلا ينطبقمُثبت مختبريًا مغلق. HTTP 403
حفظ مستوى من واجهة المستخدمPOST ... task=level.saveلا ينطبقمُثبت مختبريًا مغلق. HTTP 403 (LevelController::allowSave يتطلب core.admin)
استهداف API بـ Manager عادي (بدون core.login.api)Bearer token / X-Joomla-Tokenلا ينطبقمُستنتج مغلق. القيمة الافتراضية لـ core.login.api هي Super User (المجموعة 8) فقط. هذا المختبر يمنحها للمجموعة 6 أولًا.
Super User / تنفيذ كود عن بُعد عبر المثبّتلا ينطبقلا ينطبقمغلق. Manager يبقى Manager.

كيف وجدتها

ثبّتُ إصدار joomla/joomla-cms 6.1.3 بعد موجة JSST في 2026-07/08. تتطلب Groups API بالفعل core.admin. لا تزال مستويات العرض تمر عبر ApiController (core.manage بالإضافة إلى core.create / core.edit / core.delete). المنطق الإضافي الوحيد في LevelsController هو فك ترميز JSON لـ rules في PATCH.

نظير Groups المُصلَّح:

public function allowAdd($data = [])
{
    return $this->app->getIdentity()->authorise('core.admin', $this->option);
}

واجهة الإدارة:

protected function allowSave($data, $key = 'id')
{
    return $this->app->getIdentity()->authorise('core.admin', $this->option)
        && parent::allowSave($data, $key);
}

المنعطفات الخاطئة المسجّلة مسبقًا: اعتبار Groups API لا يزال مفتوحًا (إنه 403)؛ استهداف API بـ Manager عادي دون منح core.login.api أولًا (الافتراضي هو Super User فقط، نفس إعداد CVE-2026-71574 / 72531 / 48904)؛ قراءة 403 من واجهة المستخدم على أنها القصة كاملة (الصلاحية المتبقية هي API). مسرحية: reverse shell. الدليل هو API 200 بالإضافة إلى Groups 403 بالإضافة إلى UI 403.

صلاحيات متبقية بنفس الإصدار: menu items API، media override، articles catid.

المختبر

python3 joomla-levels-api-Abraxas-Labs.py

أو

cd lab
./run.sh

الهدف فقط http://127.0.0.1:19520. الصورة joomla:6.1.3-php8.3-apache بالإضافة إلى mariadb:11.4.

SUCCESS joomla-levels-api api-http=200 level-id=7 groups-api=403 ui-view=403 ui-save=403 JOOMLA-LEVELS-API-WITNESS

الإصلاح

انسخ core.admin allowAdd / allowEdit / delete من GroupsController إلى LevelsController. أبقِ بوابة واجهة الإدارة.

المراجع

  • github.com/joomla/joomla-cms وسم 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • LevelsController.php
  • قريب مُصلَّح: Groups API core.admin (6.1.1) · CVE-2026-71574
  • نفس الإصدار: joomla-menu-items-api · joomla-media-override · joomla-articles-catid
  • CWE-863

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. بدون ضمان.

تنزيل الأداة