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
3hace 8 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

Write-up: https://abraxaslabs.tech/research/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

Clase: SQLi Alcance: Remoto

phpMyAdmin 5.2.3 (tag RELEASE_5_2_3, commit 962857e). Central columns escribe 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 el cuadro SQL con sesión iniciada.

CVE-2016-5703 era el nombre de la base de datos en central columns. Estos campos extra y attribute no eran ese fallo.

IDsin CVE todavía
ClaseSQLi (usuario de control sobre pma__central_columns)
AlcanceRemoto (inicio de sesión autenticado por cookie; central columns de pmadb 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
ProductophpMyAdmin
Afectado5.2.3 tag RELEASE_5_2_3 (962857e)
AutenticaciónInicio de sesión autenticado por cookie. Central columns de pmadb habilitado.
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:19210

Qué puede hacer un atacante

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

PrivilegioMétodo / rutaDemostrado en laboratorio 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_extraDemostrado en laboratorio. Error JSON #1064. Testigo PMA-PMADB-CENTRAL-SQLI-WITNESS en el error del usuario de control
Mantener los campos vecinos en bandaMismo POST, comilla en field_nameDemostrado en laboratorio. Fila almacenada como neg'col. escapeString resistió
Leer o sobrescribir filas de central-column de otros usuariosMismo sink, una vez cerrada la cadenaInferido. El laboratorio 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 laboratorio solo tiene DML sobre phpmyadmin.*

Descartado en este laboratorio: acceso no autenticado, el cuadro SQL del appuser con sesión iniciada (solo appdb), shell del SO y consultas apiladas. La funcionalidad no hace nada si pmadb / central columns está desactivado (eso es un FAIL, no este residuo).

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.

Falsos caminos: tratar una comilla en field_name como el residuo (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 desactivado como este residuo (la funcionalidad no hace nada).

Laboratorio

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) en extra y attribute. Lista de permitidos auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL y on update CURRENT_TIMESTAMP. 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 etiqueta 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
  • Restos del mismo pin: phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Licencia

GNU Affero GPL v3.0. Consulte LICENSE. Solo para laboratorio de loopback. Sin garantía.

Descargar herramienta