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-pmadb-central-sqli — phpMyAdmin 5.2.3 - Alta - Remota - SQLi - colunas centrais pmadb consulta residual | Kitploit
Ferramentas/GitHubGitHub/abraxas/phpmyadmin-pmadb-central-sqli
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoLabs e Prática
GitHubabraxas/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

phpMyAdmin 5.2.3 - Alta - Remota - SQLi - colunas centrais pmadb consulta residual

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

Abraxas Labs - phpmyadmin-pmadb-central-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

Classe: SQLi Alcance: Remoto

phpMyAdmin 5.2.3 (tag RELEASE_5_2_3, commit 962857e). As colunas centrais gravam col_extra concatenando o POST extra e attribute em um literal SQL entre aspas simples no link do usuário de controle. Os campos vizinhos passam por escapeString. Esses dois não.

Um usuário autenticado envia via POST index.php?route=/database/central-columns com multi_edit_central_column_save=1 e uma aspa em field_attribute (ou col_extra). getInsertQuery / updateOneColumn então executam essa string como o usuário de controle do pma contra pma__central_columns. Essa conta é o usuário de armazenamento de configuração, não o SQL box autenticado.

CVE-2016-5703 era o nome do banco de dados nas colunas centrais. Esses campos extra e attribute não eram aquele bug.

IDsem CVE ainda
ClasseSQLi (usuário de controle em pma__central_columns)
AlcanceRemoto (login autenticado por cookie; pmadb central columns habilitado)
CWECWE-89
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 (962857e)
AutenticaçãoLogin autenticado por cookie. pmadb central columns habilitado.
LicençaGNU Affero GPL v3.0
Lab127.0.0.1:19210 apenas

O que um atacante pode fazer

Um usuário autenticado do phpMyAdmin que consegue abrir Central columns pode injetar SQL como o usuário de controle em pma__central_columns.

PrivilégioMétodo / caminhoComprovado em lab ou inferido
Quebrar a string INSERT/UPDATE do usuário de controle (integridade do SQL do pmadb)POST index.php?route=/database/central-columns multi_edit_central_column_save=1 com uma aspa em field_attribute / col_extraComprovado em lab. Erro JSON #1064. Witness PMA-PMADB-CENTRAL-SQLI-WITNESS no erro do usuário de controle
Manter campos vizinhos in-bandMesmo POST, aspa em field_nameComprovado em lab. Linha armazenada como neg'col. escapeString resistiu
Ler ou sobrescrever linhas de colunas centrais de outros usuáriosMesmo sink, uma vez que a string seja fechadaInferido. O lab para no erro de sintaxe; sem query empilhada
Statements extras como o usuário de controleMesmo sink se o link mysqli de controle permitir multi-queryInferido. O padrão de mysqli::query é single-statement. Não habilitado aqui
Alcançar outras tabelas do pmadb (bookmarks, history, pma__userconfig)Apenas se queries empilhadas ou uma escrita estilo INTO forem possíveisInferido. O usuário de controle neste lab tem apenas DML em phpmyadmin.*

Fechado neste lab: acesso não autenticado, o SQL box do appuser autenticado (apenas appdb), shell do SO e queries empilhadas. O recurso não faz nada se pmadb / central columns estiver desligado (isso é um FAIL, não este leftover).

Como eu encontrei

Oito buscas paralelas no código-fonte de RELEASE_5_2_3. Campos vizinhos em CentralColumns.php passam por escapeString. Extra e attribute são implode em um literal entre aspas simples. CVE-2016-5703 era o nome do banco de dados, não essas colunas.

Caminhos errados: tratar uma aspa em field_name como o leftover (ela armazena como neg'col; esse é o negativo); esperar que o general log mostrasse o witness não escapado (o INSERT morre com #1064 antes de uma escrita bem-sucedida); tratar pmadb-off como este leftover (o recurso não faz nada).

Lab

python3 phpmyadmin-pmadb-central-sqli-Abraxas-Labs.py

ou

cd lab
./run.sh

Apenas loopback: http://127.0.0.1:19210. Imagens phpmyadmin:5.2.3 e mysql:8.0. Projeto Compose phpmyadmin-pmadb-central-sqli. Witness PMA-PMADB-CENTRAL-SQLI-WITNESS.

SUCCESS phpmyadmin-pmadb-central-sqli how=live insert-syntax=yes field-name-escaped=yes general-log-unescaped=false error-has-witness=true PMA-PMADB-CENTRAL-SQLI-WITNESS

A correção

escapeString / quoteString(..., CONNECT_CONTROL) em extra e attribute. Allowlist auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL e on update CURRENT_TIMESTAMP. O quoteString do phpMyAdmin 6.x no blob JSON do designer é a forma corrigida para essa classe de concatenação do pmadb.

Referências

  • github.com/phpmyadmin/phpmyadmin tag RELEASE_5_2_3 (962857e)
  • libraries/classes/Database/CentralColumns.php getInsertQuery / updateOneColumn
  • Controllers/Database/CentralColumnsController.php POST multi_edit_central_column_save
  • Rota GET|POST /database/central-columns
  • Outros leftovers do mesmo pin: phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Licença

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

Baixar ferramenta