Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
phpmyadmin-pmadb-central-sqli — phpMyAdmin 5.2.3 - Alta - Remota - SQLi - consulta residual de columnas centrales de pmadb | Kitploit
Herramientas/GitHubGitHub/abraxas/phpmyadmin-pmadb-central-sqli
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónLabs y Práctica
GitHubabraxas/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

phpMyAdmin 5.2.3 - Alta - Remota - SQLi - consulta residual de columnas centrales de pmadb

Ver Repositorio
hace 4 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - phpmyadmin-pmadb-central-sqli

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

phpmyadmin-pmadb-central-sqli

Clase: SQLi Alcance: Remoto

phpMyAdmin 5.2.3 (tag RELEASE_5_2_3, commit 962857e). Las columnas centrales escriben col_extra concatenando los POST extra y attribute en un literal SQL entre comillas simples sobre el enlace del usuario de control. Los campos vecinos pasan por escapeString. Estos dos no.

Un usuario autenticado envía por POST index.php?route=/database/central-columns con multi_edit_central_column_save=1 y una comilla en field_attribute (o col_extra). getInsertQuery / updateOneColumn ejecutan entonces esa cadena como el usuario de control de pma contra pma__central_columns. Esa cuenta es el usuario de almacenamiento de configuración, no la caja SQL con sesión iniciada.

CVE-2016-5703 era el nombre de la base de datos en las columnas centrales. Estos campos extra y attribute no eran ese bug.

IDsin CVE todavía
ClaseSQLi (usuario de control sobre pma__central_columns)
AlcanceRemoto (login autenticado por cookie; columnas centrales de pmadb habilitadas)
CWECWE-89
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProductophpMyAdmin
Afectado5.2.3 tag RELEASE_5_2_3 (962857e)
AuthLogin autenticado por cookie. Columnas centrales de pmadb habilitadas.
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1:19210

Qué puede hacer un atacante

Un usuario de phpMyAdmin con sesión iniciada que pueda abrir Columnas centrales puede inyectar SQL como el usuario de control sobre pma__central_columns.

PrivilegioMétodo / rutaProbado en lab o inferido
Romper la cadena INSERT/UPDATE del usuario de control (integridad del SQL de pmadb)POST index.php?route=/database/central-columns multi_edit_central_column_save=1 con una comilla en field_attribute / col_extraProbado en lab. Error JSON #1064. Testigo PMA-PMADB-CENTRAL-SQLI-WITNESS en el error del usuario de control
Mantener los campos vecinos in-bandMismo POST, comilla en field_nameProbado en lab. Fila almacenada como neg'col. escapeString aguantó
Leer o sobrescribir filas de columnas centrales de otros usuariosMismo sink, una vez cerrada la cadenaInferido. El lab se detiene en el error de sintaxis; sin consulta apilada
Sentencias adicionales como el usuario de controlMismo sink si el enlace mysqli de control permite multi-queryInferido. Por defecto mysqli::query es de una sola sentencia. No habilitado aquí
Alcanzar otras tablas de pmadb (bookmarks, history, pma__userconfig)Solo si son posibles consultas apiladas o una escritura tipo INTOInferido. El usuario de control en este lab solo tiene DML sobre phpmyadmin.*

Cerrado en este lab: acceso no autenticado, la caja SQL del appuser con sesión iniciada (solo appdb), shell del SO y consultas apiladas. La funcionalidad no hace nada si pmadb / columnas centrales está desactivado (eso es un FAIL, no este remanente).

Cómo lo encontré

Ocho búsquedas paralelas en el código fuente de RELEASE_5_2_3. Los campos vecinos en CentralColumns.php pasan por escapeString. Extra y attribute se implode en un literal entre comillas simples. CVE-2016-5703 era el nombre de la base de datos, no estas columnas.

Caminos equivocados: tratar una comilla en field_name como el remanente (se almacena como neg'col; ese es el negativo); esperar que el log general muestre el testigo sin escapar (el INSERT muere con #1064 antes de una escritura exitosa); tratar pmadb-off como este remanente (la funcionalidad no hace nada).

Lab

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

o

cd lab
./run.sh

Solo loopback: http://127.0.0.1:19210. Imágenes phpmyadmin:5.2.3 y mysql:8.0. Proyecto de Compose phpmyadmin-pmadb-central-sqli. Testigo 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

La solución

escapeString / quoteString(..., CONNECT_CONTROL) sobre extra y attribute. Lista blanca de auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL y on update CURRENT_TIMESTAMP. El quoteString de phpMyAdmin 6.x sobre el blob JSON del diseñador es la forma parcheada para esta clase de concatenación en pmadb.

Referencias

  • 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
  • Ruta GET|POST /database/central-columns
  • Remanentes del mismo pin: phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Licencia

GNU Affero GPL v3.0. Ver LICENSE. Solo lab en loopback. Sin garantía.

Descargar herramienta