Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
joomla-menu-items-api — Joomla 6.1.3 - Alta - Remota - ACL - API de itens de menu remanescente | Kitploit
Ferramentas/GitHubGitHub/abraxas/joomla-menu-items-api
Autenticação e AutorizaçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoSegurança de APILabs e Prática
GitHubabraxas/joomla-menu-items-api

joomla-menu-items-api

Joomla 6.1.3 - Alta - Remota - ACL - API de itens de menu remanescente

Ver Repositório
20há 6 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - joomla-menu-items-api

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

Análise: https://abraxaslabs.tech/research/joomla-menu-items-api

joomla-menu-items-api

Classe: Privilégio residual Alcance: Remoto

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

A interface de administração para itens de menu verifica com_menus.menu.{id} e recusa menutype == main. api/components/com_menus/src/Controller/ItemsController.php não possui allowAdd / allowEdit, portanto o ApiController apenas exige core.manage mais core.create / core.edit em com_menus.

Um usuário de token que pode gerenciar um menu pode fazer POST em /api/index.php/v1/menus/administrator/items para um menu ao qual é negado na interface, incluindo o menu protegido main do administrador.

IDainda sem CVE
ClassePrivilégio residual / bypass de autorização
AlcanceRemoto (token de API com 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
ProdutoJoomla CMS
Afetado6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
AutenticaçãoUsuário remoto de API com core.login.api + core.manage + core.create/core.edit em com_menus, não Super User. O padrão de core.login.api é apenas Super User.
LicençaGNU Affero GPL v3.0
Laboratórioapenas 127.0.0.1

O que um atacante pode fazer

Usuário de token que pode criar itens apenas no menu A. Ele ainda não pode instalar extensões, a menos que já tenha essa permissão. Ele não se torna Super User a partir deste resíduo.

PrivilégioMétodo / caminhoTipoComprovado em laboratório ou inferido
Criar um item em um menu ao qual é negadoPOST /api/index.php/v1/menus/administrator/items com menutype de BintegridadeComprovado em laboratório. HTTP 200, item 102 em staffmenu, título poc-JOOMLA-MENU-ITEMS-API-WITNESS
Plantar uma URL no menu protegido main do administradorMesmo POST com menutype=mainintegridadeComprovado em laboratório, HTTP 200. A interface allowEdit retorna false para main
Direcionar a equipe para um login falso ou ocultar um item real de administraçãoItem de URL publicado em um menu de administraçãointegridade / reconhecimentoInferido a partir da escrita. O laboratório plantou https://example.invalid/
Editar ou excluir itens em menus que não possuiPATCH / DELETE da API usam o mesmo allow* ausenteintegridadeInferido. O laboratório exercitou a criação
Instalar extensões ou tornar-se Super UserRequer outra ACLn/aFechado. O Manager não é Super User

Fechado nesta versão: adicionar/salvar na interface em staffmenu para o mesmo usuário (not permitted). Adicionar na interface em labmenu ainda funciona. A verificação core.admin da API de grupos da 6.1.1 permanece intacta.

Como eu encontrei

Fixe a versão 6.1.3 após a onda JSST de 2026. O ItemController do administrador já faz a coisa certa:

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

O controller de itens da API não sobrescreve allowAdd / allowEdit. O ApiController padrão verifica apenas o componente core.manage mais core.create / core.edit. O caminho canSave do model verifica apenas o componente core.edit. A cópia/movimentação em lote já verifica o asset do menu.

Caminhos errados já registrados: ler HTTP 200 da UI como permissão (o corpo é "not permitted"); tratar core.manage em com_menus como suficiente na UI (a UI ainda depende de com_menus.menu.{id}); um Manager padrão sem core.login.api. Cenário: um reverse shell. O oráculo é API 200 em staffmenu e main mais negação na UI em B.

Sobras do mesmo pin: levels API, media override, articles catid.

Lab

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

ou

cd lab
./run.sh

Direcione apenas para http://127.0.0.1:19530. Imagem 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 retornam HTTP 200; a negação de B é o corpo "not permitted" da UI, não um status 403.

A correção

Copie ItemController::allowAdd / allowEdit (e delete) para o controller da API, incluindo o bloco main. Verifique o asset do tipo de menu em canSave da mesma forma.

Referências

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

Licença

GNU Affero GPL v3.0. Consulte LICENSE. Apenas laboratório loopback. Sem garantias.

Baixar ferramenta