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
phpmyadmin-config-set-2fa — phpMyAdmin 5.2.3 - Alta - Remoto - 2FA - config/set limpa a autenticação de dois fatores | Kitploit
Ferramentas/GitHubGitHub/abraxas/phpmyadmin-config-set-2fa
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAutenticaçãoLabs e Prática
GitHubabraxas/phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

phpMyAdmin 5.2.3 - Alta - Remoto - 2FA - config/set limpa a autenticação de dois fatores

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

Abraxas Labs - phpmyadmin-config-set-2fa

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-config-set-2fa

phpmyadmin-config-set-2fa

Classe: Privilégio remanescente / etapa de verificação ausente Alcance: Remoto

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

POST index.php?route=/config/set grava qualquer preferência da lista de permissões, incluindo 2fa. UserPreferences::persistOption não faz nenhuma validação. Configurações -> Autenticação de dois fatores ainda chama TwoFactor::check(true) antes de remover o fator. /config/set não.

Uma sessão autenticada, ou XSS/CSRF capaz de enviar por POST o token da página, pode enviar key=2fa e value=null. O próximo login por senha não tem prompt de TOTP, WebAuthn ou Simple. Remoção duradoura, não um salto de uma requisição.

IDainda sem CVE
ClassePrivilégio remanescente / etapa de verificação ausente
AlcanceRemoto (login autenticado por cookie; token CSRF necessário)
CWECWE-620
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProdutophpMyAdmin
Afetado5.2.3 tag RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
Autenticaçãologin por cookie. Token CSRF necessário. Completa XSS ou CSRF para uma remoção duradoura de 2FA
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

O que um atacante pode fazer

Remover o 2FA de uma conta phpMyAdmin sem apresentar TOTP, WebAuthn ou o campo de confirmação Simple. O próximo login por senha é apenas com senha. PMA completo como aquele usuário MySQL (SQL, usuários, exportação).

PrivilégioMétodo / caminhoReconhecimento / integridade / disponibilidadeComprovado em lab ou inferido
Persistir 2fa como null e remover o segundo fator do pmadbPOST index.php?route=/config/set autenticado key=2fa value=null mais um token válidoIntegridade do armazenamento de preferênciasComprovado em lab. success:true, pmadb config_data tornou-se []
Fazer login apenas com senha após essa gravaçãoNova sessão por cookie, mesmo usuário MySQLIntegridade do caminho de loginComprovado em lab. Sem 2fa_confirm, caiu na UI normal
Manter a sessão atual enquanto o 2FA desaparece para logins posterioresMesmo handler; persistOption grava o armazenamento, não o flag ativo two_factor_checkIntegridade de sessões posterioresComprovado em lab. Sessão A permaneceu. Sessão B tinha visto 2FA. Sessão C não
Encadear a partir de XSS armazenado ou CSRF capaz de POST com o token da páginaRemanescentes da mesma revisão, não deste labIntegridade do 2FA após um POST de mesma origemInferido
Remover o 2FA através de ConfiguraçõesPOST /preferences/two-factor 2fa_remove=1Integridade do 2FA via a UI documentadaComprovado em lab como fechado. Sem o fator, o PMA mostra a página de confirmação e o pmadb ainda tem backend=simple

Fechado neste remanescente: acesso não autenticado, pular a senha do MySQL, RCE no SO, ler linhas do pmadb de outros usuários. Não precisei do remanescente #1 (assinatura CustomServer). Não pulei a senha do MySQL.

Mesmo pin: remanescente WebAuthn CustomServer.

Como encontrei

Fixe no 5.2.3 após PMASA-2025-1/2/3. Autenticação por cookie, pmadb pma__userconfig. O lab ativa $cfg['DBG']['simple2fa'] apenas para que Configurações possa registrar o backend Simple sem uma chave de hardware. TOTP e WebAuthn vivem na mesma chave de preferência 2fa.

SetConfigController recebe key e value JSON e chama Config::setUserValue. UserPreferences::persistOption está documentado como "Nenhuma validação é feita!" apply() inclui 2fa na lista de permissões para que a chave não seja descartada como uma preferência desconhecida.

$result = $this->config->setUserValue(null, $key, json_decode($value));

json_decode('null') é null do PHP. persistOption('2fa', null, $default) então remove config_data['2fa'] porque o padrão para esse caminho também é null.

Configurações -> Autenticação de dois fatores é o contraste. TwoFactorController não fará configure('') até que TwoFactor::check(true) retorne true.

Caminhos errados já registrados: tratar o 2fa_remove de Configurações como a falha (ele ainda exige o fator); alegar acesso não autenticado; alegar um salto da senha do MySQL; tratar isso como o remanescente #1 (CustomServer); um reverse shell. Teatro.

Lab

python3 phpmyadmin-config-set-2fa-Abraxas-Labs.py
# or: cd lab && ./run.sh

Alvo apenas http://127.0.0.1:19280. Projeto Compose phpmyadmin-config-set-2fa. Pin RELEASE_5_2_3. run.sh copia ou clona essa tag para lab/src/ para a imagem. A stack é desmontada após a execução.

Configurações registraram 2FA Simple. Um segundo navegador acessou a página 2fa_confirm. POST 2fa_remove sem o fator permaneceu na UI de confirmação e deixou backend=simple no pmadb. POST /config/set então retornou success:true, o pmadb tornou-se [], e o próximo login caiu na UI normal.

SUCCESS phpmyadmin-config-set-2fa enroll=simple ui-remove-blocked=yes config-set-cleared=yes next-login-password-only=yes PMA-CONFIG-SET-2FA-WITNESS

A correção

Negar 2fa (e outras chaves de autenticação) em /config/set. Exigir TwoFactor::check(true) antes de qualquer mutação de 2FA. Manter o caminho de Configurações como o único gravador.

Referências

  • github.com/phpmyadmin/phpmyadmin tag RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/Controllers/Config/SetConfigController.php
  • libraries/classes/Config/UserPreferences.php
  • Mesmo pin: PMA-5.2.3-WebAuthn-2FA
  • CWE-620

Licença

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

Baixar ferramenta