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-auth-plugin-unquoted — phpMyAdmin 5.2.3 - Alta - Remota - SQLi - identificador del plugin de autenticación sin comillas | Kitploit
Herramientas/GitHubGitHub/abraxas/phpmyadmin-auth-plugin-unquoted
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHub
abraxas/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

phpMyAdmin 5.2.3 - Alta - Remota - SQLi - identificador del plugin de autenticación sin comillas

Ver Repositorio
hace 3 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-auth-plugin-unquoted

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

Clase: SQLi Alcance: Remoto

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

Cambiar contraseña está activado por defecto. UserPassword.php copia el POST authentication_plugin en ALTER USER ... IDENTIFIED WITH sin lista de permitidos y sin comillas. El nombre de usuario, el host y la contraseña en la misma sentencia pasan por escapeString. En MySQL 8 la cláusula WITH se emite cuando el plugin enviado difiere del actual.

Un usuario de phpMyAdmin con sesión iniciada inyecta SQL en su propio ALTER USER a través del formulario de cambio de contraseña. El SQL extra en el campo del plugin es SQL, no un nombre de plugin.

IDaún sin CVE
ClaseSQLi
AlcanceRemoto (inicio de sesión autenticado con cookie; cambio de contraseña activado)
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 etiqueta RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
Autenticacióninicio de sesión autenticado con cookie. $cfg['ShowChgPassword'] por defecto true. El tipo de autenticación no es config
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Qué puede hacer un atacante

Un usuario de phpMyAdmin con sesión iniciada puede inyectar SQL en su propio ALTER USER a través del formulario de cambio de contraseña.

PrivilegioMétodo / sinkReconocimiento / integridad / disponibilidadProbado en laboratorio o inferido
Enviar SQL extra en IDENTIFIED WITHPOST index.php?route=/user-password con authentication_pluginIntegridad de la sentencia que construye phpMyAdminProbado en laboratorio. El POST en bruto sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ aparece sin comillas en el cuadro SQL
Hacer que MySQL analice ese SQL extra como SQLLa misma sentencia llega a mysqldIntegridad de la conexión del usuarioProbado en laboratorio. El registro general conservó el plugin sha256_password y descartó el comentario. 1227 porque este usuario no tiene CREATE USER
Cláusulas extra o cuentas extra si el escape se analizaMismo sink; las consultas apiladas dependen del driverIntegridad de otras cuentasInferido. Este laboratorio no ejecuta una segunda sentencia ni crea otra cuenta
La misma concatenación en añadir/editar usuarioPrivileges.php IDENTIFIED WITH / MariaDB VIAIntegridad de las sentencias construidas por el otorganteHermano inferido. El POST del laboratorio es solo de cambio de contraseña

Cerrado en esta ruta: uso no autenticado (se requiere inicio de sesión con cookie), autenticación config (el cambio de contraseña está oculto), RCE, cambio de plugin sin GRANT exitoso en MySQL 8 (1227 sin CREATE USER). El nombre de usuario, el host y la contraseña permanecen escapados. La contraseña propia no necesita GRANT; lo que queda es el campo del plugin sin comillas, no un intercambio de plugin libre.

Mismo pin: WebAuthn CustomServer leftover.

Cómo lo encontré

Fijé phpmyadmin/phpmyadmin RELEASE_5_2_3. PMASA-2025-1/2/3 ya están en 5.2.2. El cambio de contraseña todavía construye:

return 'ALTER USER \'' . $dbi->escapeString($username)
    . '\'@\'' . $dbi->escapeString($hostname)
    . '\' IDENTIFIED WITH ' . $authPlugin . ' BY '

$authPlugin es $_POST['authentication_plugin']. MySQL 5.7.37+ y 8.0 omiten WITH a menos que el plugin haya cambiado. Envía por POST un nombre diferente y la cláusula vuelve.

Caminos equivocados ya registrados: tratar MySQL 1227 como fallo de lo que queda (es la prueba de que el SQL extra se analizó); afirmar un cambio de plugin sin GRANT en MySQL 8; tratar la autenticación config como dentro del alcance; una reverse shell. Teatro.

Laboratorio

python3 phpmyadmin-auth-plugin-unquoted-Abraxas-Labs.py
# or: cd lab && ./run.sh

Objetivo solo http://127.0.0.1:19260. Imágenes phpmyadmin:5.2.3 y mysql:8.0. Proyecto de Compose phpmyadmin-auth-plugin-unquoted. El stack se desmonta tras la ejecución.

Inicio de sesión con cookie como appuser. POST /user-password con authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/. Cuadro de consulta SQL de PMA: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'. El registro general de MySQL analiza el comentario y almacena IDENTIFIED WITH 'sha256_password'. El nombre de usuario está entre comillas.

SUCCESS phpmyadmin-auth-plugin-unquoted how=live unquoted=yes escaped-user=yes plugin=sha256_password PMA-AUTH-PLUGIN-UNQUOTED-WITNESS

La solución

Lista de permitidos de nombres de plugin desde SHOW PLUGINS. Nunca interpolar el POST en IDENTIFIED WITH, VIA o plugin=.

Referencias

  • github.com/phpmyadmin/phpmyadmin etiqueta RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/UserPassword.php
  • libraries/classes/Server/Privileges.php
  • Mismo pin: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

Licencia

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

Descargar herramienta