Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
joomla-menu-items-api — Joomla 6.1.3 - Alta - Remota - ACL - residuo dell'API degli elementi di menu | Kitploit
Strumenti/GitHubGitHub/abraxas/joomla-menu-items-api
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingSicurezza delle APILab e Pratica
GitHubabraxas/joomla-menu-items-api

joomla-menu-items-api

Joomla 6.1.3 - Alta - Remota - ACL - residuo dell'API degli elementi di menu

Vedi Repository
42 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Abraxas Labs - joomla-menu-items-api

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

joomla-menu-items-api

Classe: Privilegio residuo Portata: Remota

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

L'interfaccia amministrativa per le voci di menu verifica com_menus.menu.{id} e rifiuta menutype == main. api/components/com_menus/src/Controller/ItemsController.php non ha allowAdd / allowEdit, quindi ApiController richiede solo core.manage più core.create / core.edit su com_menus.

Un utente con token che può gestire un menu può effettuare POST su /api/index.php/v1/menus/administrator/items verso un menu a cui è negato l'accesso nell'interfaccia, incluso il menu protetto main dell'amministratore.

IDnessuna CVE al momento
ClassePrivilegio residuo / bypass dell'autorizzazione
PortataRemota (token API con core.login.api)
CWECWE-863
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProdottoJoomla CMS
Affetto6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
AuthUtente API remoto con core.login.api + core.manage + core.create/core.edit su com_menus, non Super User. Il valore predefinito di core.login.api è solo Super User.
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Utente con token che può creare voci solo sul menu A. Non può comunque installare estensioni a meno che non abbia già quel permesso. Non diventa Super User da questo residuo.

PrivilegioMetodo / percorsoTipoProvato in lab o dedotto
Creare una voce su un menu a cui è negato l'accessoPOST /api/index.php/v1/menus/administrator/items con menutype di BintegritàProvato in lab. HTTP 200, voce 102 su staffmenu, titolo poc-JOOMLA-MENU-ITEMS-API-WITNESS
Inserire un URL sul menu protetto main dell'amministratoreStesso POST con menutype=mainintegritàProvato in lab HTTP 200. L'interfaccia allowEdit restituisce false per main
Indirizzare lo staff verso un login simile o nascondere una voce admin realeVoce URL pubblicata su un menu adminintegrità / ricognizioneDedotto dalla scrittura. Il lab ha inserito https://example.invalid/
Modificare o eliminare voci su menu di cui non sono proprietariAPI PATCH / DELETE usa lo stesso allow* mancanteintegritàDedotto. Il lab ha esercitato la creazione
Installare estensioni o diventare Super UserRichiede altre ACLn/aChiuso. Il Manager non è Super User

Chiuso su questo pin: aggiunta/salvataggio nell'interfaccia su staffmenu per lo stesso utente (not permitted). L'aggiunta nell'interfaccia su labmenu funziona ancora. Il gate core.admin dell'API Groups dalla 6.1.1 è intatto.

Come l'ho trovato

Ho fissato la 6.1.3 dopo l'ondata JSST del 2026. L'ItemController dell'amministratore fa già la cosa giusta:

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);

Il controller degli items dell'API non sovrascrive allowAdd / allowEdit. L'ApiController predefinito verifica solo core.manage del componente più core.create / core.edit. Il percorso canSave del modello verifica solo core.edit del componente. La copia/spostamento in batch verifica già l'asset del menu.

Vicoli ciechi già registrati: leggere HTTP 200 dell'interfaccia come permesso (il corpo è "not permitted"); considerare core.manage su com_menus sufficiente nell'interfaccia (l'interfaccia si basa comunque su com_menus.menu.{id}); un Manager standard senza core.login.api. Teatro: una reverse shell. L'oracolo è API 200 su staffmenu e main più la negazione nell'interfaccia su B.

Altri residui dello stesso pin: levels API, media override, articles catid.

Lab

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

oppure

cd lab
./run.sh

Target solo http://127.0.0.1:19530. Immagine 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 sono HTTP 200; la negazione di B è il corpo "not permitted" dell'interfaccia, non uno stato 403.

La correzione

Copiare ItemController::allowAdd / allowEdit (e delete) sul controller dell'API, incluso il blocco main. Verificare l'asset del tipo di menu in canSave allo stesso modo.

Riferimenti

  • github.com/joomla/joomla-cms tag 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • ItemsController.php
  • ItemController.php
  • Stesso tag: joomla-levels-api · joomla-media-override · joomla-articles-catid
  • CWE-863

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento