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-media-override — Joomla 6.1.3 - Alto - Remoto - Sobrescrita - gerenciador de mídia sobrescreve resíduos | Kitploit
Ferramentas/GitHubGitHub/abraxas/joomla-media-override
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebVirtualização para SegurançaSegurança WebTestes de PenetraçãoLabs e Prática
GitHubabraxas/joomla-media-override

joomla-media-override

Joomla 6.1.3 - Alto - Remoto - Sobrescrita - gerenciador de mídia sobrescreve resíduos

há 4 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
Ver Repositório

Abraxas Labs - joomla-media-override

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

joomla-media-override

Classe: Privilégio remanescente Alcance: Remoto

Joomla CMS 6.1.3 (0f2d4de) - Open Source Matters

CVE-2026-48947 ensinou a API de webservice de mídia a exigir core.edit quando override está definido. A API JSON do site ainda não. O Author padrão tem core.create em com_media e nenhum core.edit. O dispatcher do site considera core.create suficiente e carrega o ApiController do administrador. postFiles() então passa override diretamente para createFile().

Um Author padrão pode substituir um arquivo que já está no disco. Os visitantes continuam acessando a mesma URL pública e recebem os novos bytes.

IDainda sem CVE
ClassePrivilégio remanescente / integridade
AlcanceRemoto (Author padrão, sem token de API)
CWECWE-863, CWE-639
CVSSMédio: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
ProdutoJoomla CMS
Afetado6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2), API JSON com_media do site
AutenticaçãoAuthor padrão (grupo 3). Sem token de API.
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

O que um atacante pode fazer

Fazer login como um Author padrão e substituir um arquivo que já está no site. Isto é desfiguração / bait-and-switch de mídia armazenada, não uma tomada de controle do site. A denylist de extensões permanece inalterada, portanto isto não é um upload de .php.

PrivilégioMétodo / caminhoTipoComprovado em lab ou inferido
Sobrescrever um arquivo de mídia existente (logo, imagem de artigo)Site POST /index.php?option=com_media&task=api.files&format=json&path=local-images:/ com JSON override: trueintegridadeComprovado em lab. HTTP 200, SHA do disco alterado, GET público /images/joomla_black.png serviu o novo PNG que carrega JOOMLA-MEDIA-OVERRIDE-WITNESS
Desfigurar tudo que ainda aponta para essa URLMesmo caminho público, sem cache-bustintegridadeComprovado em lab que os bytes públicos mudaram. Inferido para outros adaptadores sob images/
Criar um novo arquivo permitidoMesmo POST sem overridepretendidoAuthor tem core.create em com_media
Editar via PUTPUT na mesma task, caminho inclui o nome do arquivon/aComprovado em lab fechado. HTTP 403. putFiles() já exige core.edit
Criar quando o nome existe, sem overridePOST override: false (padrão)n/aComprovado em lab fechado. HTTP 409, SHA original inalterado até o POST com override
Enviar .php ou outros tipos negadosdenylist de createFile / isMediaFilen/aInferido fechado. Este lab envia apenas um PNG
Chamar a API de webservice de mídia com override/api/index.php/v1/media/filesn/aInferido fechado. MediaController::allowAdd verifica core.edit quando override está definido (CVE-2026-48947)
Super User / RCEn/an/aFechado. Author permanece Author

Como eu encontrei

Fixe em 6.1.3 após a onda JSST de 2026-07/08. A API de Groups já exige core.admin. O webservice de mídia já exige core.edit no override. O controller interno ainda não.

O Author padrão tem core.create em com_media e nada em core.edit:

{"core.admin":{"7":1},"core.manage":{"6":1},"core.create":{"3":1},"core.delete":{"5":1}}

O Dispatcher do site deixa core.create passar e carrega o ApiController do administrador. postFiles() então:

if (!$this->app->getIdentity()->authorise('core.create', 'com_media')) {
    throw new \Exception(Text::_('JLIB_APPLICATION_ERROR_CREATE_RECORD_NOT_PERMITTED'), 403);
}
$override     = $content->get('override', false);
if ($mediaContent) {
    $name = $this->getModel()->createFile($adapter, $name, $path, $mediaContent, $override);

Webservice corrigido (api/.../MediaController.php):

if ($this->input->json->get('override', false)) {
    return $user->authorise('core.edit', 'com_media');
}

Caminhos errados já registrados: tratar PUT como o remanescente (PUT já é 403); tratar o caminho do webservice como ainda aberto (CVE-2026-48947 o fechou); ler 409 sem override como um erro (esse é o caminho pretendido de criar-se-ausente). Teatro: um reverse shell. O oráculo é POST override 200 mais PUT 403 mais GET público do PNG testemunha.

Outros remanescentes do mesmo pin: levels API, menu items API, articles catid.

Lab

python3 joomla-media-override-Abraxas-Labs.py

ou

cd lab
./run.sh

Alvo apenas http://127.0.0.1:19540. Imagem joomla:6.1.3-php8.3-apache mais mariadb:11.4.

SUCCESS joomla-media-override post-http=200 override=yes bytes-changed=yes put-http=403 no-edit=yes conflict-http=409 JOOMLA-MEDIA-OVERRIDE-WITNESS

A correção

Mesma verificação override -> core.edit que MediaController::allowAdd dentro de ApiController::postFiles() antes de createFile(). Manter PUT em core.edit.

Referências

  • github.com/joomla/joomla-cms tag 6.1.3 (0f2d4de4729eb951e0878fec98c7990da07915b2)
  • ApiController.php postFiles
  • Próximo corrigido (não este controller): CVE-2026-48947
  • Mesma tag: joomla-levels-api · joomla-menu-items-api · joomla-articles-catid
  • CWE-863 · CWE-639

Licença

GNU Affero GPL v3.0. Veja LICENSE. Apenas lab em loopback. Sem garantia.

Baixar ferramenta