Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
joomla-levels-api — Joomla 6.1.3 - Hoch - Remote - ACL - GET /api/v1/users/levels gibt Zugriffsebenen preis | Kitploit
Tools/GitHubGitHub/abraxas/joomla-levels-api
Authentifizierung & AutorisierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsAPI-SicherheitLabs & Praxis
GitHubabraxas/joomla-levels-api

joomla-levels-api

Joomla 6.1.3 - Hoch - Remote - ACL - GET /api/v1/users/levels gibt Zugriffsebenen preis

Repository anzeigen
24vor 8 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - joomla-levels-api

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

Write-up: https://abraxaslabs.tech/research/joomla-levels-api

joomla-levels-api

Klasse: Übrig gebliebenes Privileg Reichweite: Remote

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

Administrator-Benutzer -> Zugriffsebenen anzeigen erfordert core.admin auf com_users (LevelController::allowSave und Löschen). Der Groups-Webservice macht bereits dasselbe (GroupsController, 6.1.1). LevelsController hat keine Überschreibung für allowAdd, allowEdit oder delete, sodass ApiController core.manage plus core.create durchlässt.

Ein API-Token der Manager-Klasse, dem core.login.api ohne core.admin gewährt wurde, kann Zugriffsebenen zum Anzeigen erstellen, die die UI verbietet.

IDnoch keine CVE
KlasseÜbrig gebliebenes Privileg / Umgehung der Autorisierung
ReichweiteRemote (API-Token mit core.login.api)
CWECWE-863
CVSSMittel: 6.1 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
ProduktJoomla CMS
Betroffen6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
AuthentifizierungAPI-Token für Manager (Gruppe 6) mit core.login.api und com_users manage/create/edit. Kein core.admin. Standardmäßig ist core.login.api nur für Super User.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Ein API-Token eines Nicht-Super-Users verwenden, um zu ändern, welche Gruppen welche Seiten sehen. Allein durch dieses übrig gebliebene Privileg werden sie nicht zum Super User. Dies ist eine Kontrolle der Inhaltsichtbarkeit, keine Übernahme der Website.

PrivilegMethode / PfadArtIm Lab nachgewiesen oder abgeleitet
Eine Zugriffsebene zum Anzeigen erstellenPOST /api/index.php/v1/users/levels JSON title, rules (Gruppen-IDs)IntegritätIm Lab nachgewiesen. HTTP 200, #__viewlevels id=7, Titel poc-level-JOOMLA-LEVELS-API-WITNESS
Eine bestehende Ebene bearbeiten (Gruppenliste / Titel)PATCH /api/index.php/v1/users/levels/{id}IntegritätAbgeleitet. Derselbe Controller, kein allowEdit. Im Lab nur erstellt.
Eine Ebene löschenDELETE /api/index.php/v1/users/levels/{id}Integrität / Verfügbarkeit von ACL-ZeilenAbgeleitet. Dieselbe fehlende Überschreibung. Im Lab wurde kein DELETE ausgeführt.
Einen nur für Mitglieder bestimmten Artikel, ein Modul oder einen Menüeintrag offenlegenNeue oder gepatchte Ebene, deren rules Public / Guest / Registered enthaltenRecon (Inhaltssichtbarkeit)Abgeleitet aus #__viewlevels.rules. Im Lab wurde die Zeile eingefügt; es wurde kein Live-Artikel neu per ACL gesichert.
Eine Seite vor Registered verbergen oder die Gruppe des Angreifers zu einer Special-Ebene hinzufügenDasselbe PATCH / ErstellenIntegritätAbgeleitet. Derselbe Speicher.
Benutzergruppen über die API verändernPOST /api/index.php/v1/users/groupsn/aIm Lab nachgewiesen geschlossen. HTTP 403 (GroupsController core.admin)
Benutzer -> Zugriffsebenen anzeigen im Administrator öffnenGET /administrator/index.php?option=com_users&view=levelsn/aIm Lab nachgewiesen geschlossen. HTTP 403
Eine Ebene über die UI speichernPOST ... task=level.saven/aIm Lab nachgewiesen geschlossen. HTTP 403 (LevelController::allowSave erfordert core.admin)
Die API mit einem Standard-Manager (ohne core.login.api) ansprechenBearer-Token / X-Joomla-Tokenn/aAbgeleitet geschlossen. Standardmäßig ist core.login.api nur für Super User (Gruppe 8). Dieses Lab gewährt es zuerst Gruppe 6.
Super User / Installer RCEn/an/aGeschlossen. Manager bleibt Manager.

Wie ich es gefunden habe

Ich habe joomla/joomla-cms 6.1.3 nach der JSST-Welle 2026-07/08 gepinnt. Die Groups-API erfordert bereits core.admin. View-Levels fallen weiterhin durch ApiController (core.manage plus core.create / core.edit / core.delete). Die einzige zusätzliche Logik in LevelsController ist die PATCH-JSON-Dekodierung von rules.

Korrigiertes Groups-Geschwister:

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

Administrator-Oberfläche:

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

Bereits erfasste Fehlversuche: die Groups-API als weiterhin offen zu behandeln (sie ist 403); die API als einfacher Manager anzusprechen, ohne zuvor core.login.api zu gewähren (Standard ist nur Super User, gleiches Setup wie CVE-2026-71574 / 72531 / 48904); den UI-403 als die ganze Geschichte zu lesen (der Rest ist die API). Theater: eine Reverse Shell. Das Orakel ist API 200 plus Groups 403 plus UI 403.

Gleiche Pin-Überbleibsel: menu items API, media override, articles catid.

Lab

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

oder

cd lab
./run.sh

Ziel nur http://127.0.0.1:19520. Image joomla:6.1.3-php8.3-apache plus 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

Die Behebung

Kopiere GroupsController core.admin allowAdd / allowEdit / delete auf LevelsController. Behalte das Administrator-UI-Gate bei.

Referenzen

  • github.com/joomla/joomla-cms Tag 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • LevelsController.php
  • In der Nähe gepatcht: Groups API core.admin (6.1.1) · CVE-2026-71574
  • Gleicher Tag: joomla-menu-items-api · joomla-media-override · joomla-articles-catid
  • CWE-863

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen