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

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

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

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

دليل الأدوات

الفئات

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

joomla-menu-items-api

Joomla 6.1.3 - عالي - عن بُعد - ACL - بقايا واجهة برمجة تطبيقات عناصر القائمة

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - joomla-menu-items-api

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

joomla-menu-items-api

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

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

تتحقق واجهة المستخدم الإدارية لعناصر القوائم من com_menus.menu.{id} وترفض menutype == main. لا يحتوي api/components/com_menus/src/Controller/ItemsController.php على allowAdd / allowEdit، لذا يطلب ApiController فقط core.manage بالإضافة إلى core.create / core.edit على com_menus.

يمكن لمستخدم رمز مميز (token) مسموح له بإدارة قائمة واحدة أن يرسل POST إلى /api/index.php/v1/menus/administrator/items على قائمة ممنوع منها في واجهة المستخدم، بما في ذلك قائمة المسؤول المحمية main.

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

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

مستخدم رمز مميز مسموح له بإنشاء عناصر على القائمة A فقط. لا يزال غير قادر على تثبيت الإضافات ما لم يكن يمتلك تلك الصلاحية بالفعل. لا يصبح مستخدمًا خارقًا من هذه الصلاحية المتبقية.

الصلاحيةالطريقة / المسارالنوعمُثبت مختبريًا أو مُستنتج
إنشاء عنصر على قائمة ممنوع منهاPOST /api/index.php/v1/menus/administrator/items مع menutype الخاص بـ Bسلامةمُثبت مختبريًا. HTTP 200، العنصر 102 على staffmenu، العنوان poc-JOOMLA-MENU-ITEMS-API-WITNESS
زرع رابط على قائمة المسؤول المحمية mainنفس POST مع menutype=mainسلامةمُثبت مختبريًا HTTP 200. واجهة المستخدم allowEdit تُرجع false لـ main
توجيه الموظفين إلى صفحة تسجيل دخول مشابهة أو إخفاء عنصر إداري حقيقيعنصر رابط منشور على قائمة إداريةسلامة / استطلاعمُستنتج من الكتابة. زرع المختبر https://example.invalid/
تعديل أو حذف عناصر على قوائم لا يملكهاAPI PATCH / DELETE يستخدم نفس allow* المفقودسلامةمُستنتج. المختبر جرّب الإنشاء
تثبيت الإضافات أو أن يصبح مستخدمًا خارقًايحتاج ACL آخرلا ينطبقمغلق. المدير ليس مستخدمًا خارقًا

مغلق على هذا الإصدار: إضافة/حفظ واجهة المستخدم على staffmenu لنفس المستخدم (not permitted). إضافة واجهة المستخدم على labmenu لا تزال تعمل. بوابة core.admin الخاصة بـ Groups API من 6.1.1 لم تُمس.

كيف وجدته

ثبّتت 6.1.3 بعد موجة JSST لعام 2026. ItemController الإداري يفعل الصواب بالفعل:

return $user->authorise('core.create', 'com_menus.menu.' . $menutypeID);
if ($item->menutype == 'main') {
    return false;
}
return $user->authorise('core.edit', 'com_menus.menu.' . (int) $menutypeID);

وحدة تحكم عناصر API لا تتجاوز allowAdd / allowEdit. ApiController الافتراضي يتحقق فقط من core.manage للمكوّن بالإضافة إلى core.create / core.edit. مسار canSave في النموذج يتحقق فقط من core.edit للمكوّن. النسخ/النقل بالدفعات يتحقق بالفعل من أصل القائمة.

منعطفات خاطئة مسجّلة بالفعل: قراءة HTTP 200 لواجهة المستخدم كسماح (المحتوى هو "not permitted")؛ اعتبار core.manage على com_menus كافياً في واجهة المستخدم (لا تزال واجهة المستخدم تعتمد على com_menus.menu.{id})؛ مدير عادي بدون core.login.api. مسرحية: reverse shell. الدليل هو API 200 على staffmenu وmain بالإضافة إلى رفض واجهة المستخدم على B.

بقايا نفس الإصدار: levels API، media override، articles catid.

المختبر

python3 joomla-menu-items-api-Abraxas-Labs.py

أو

cd lab
./run.sh

استهدف فقط http://127.0.0.1:19530. الصورة joomla:6.1.3-php8.3-apache.

SUCCESS joomla-menu-items-api api-b-http=200 item-id=102 menutype=staffmenu api-main-http=200 ui-add-b=200 ui-save-b=200 JOOMLA-MENU-ITEMS-API-WITNESS

ui-add-b / ui-save-b هما HTTP 200؛ رفض B هو محتوى "not permitted" في واجهة المستخدم، وليس حالة 403.

الإصلاح

انسخ ItemController::allowAdd / allowEdit (والحذف) إلى وحدة تحكم API، بما في ذلك حظر main. تحقق من أصل نوع القائمة في canSave بالطريقة نفسها.

المراجع

  • github.com/joomla/joomla-cms وسم 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • ItemsController.php
  • ItemController.php
  • نفس الوسم: joomla-levels-api · joomla-media-override · joomla-articles-catid
  • CWE-863

الترخيص

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

تنزيل الأداة