La vulnerabilidad, la
cual requiere encontrarse autenticado, es posible debido a un fallo de
"Inclusión de fichero Local" (Local File Inclusion, LFI)
El equipo de
seguridad ChaMD5 ha encontrado una vulnerabilidad del tipo "Inclusión de
Fichero Local" (Local File Inclusion, LFI) que permitiría la ejecución de
código remoto (Remote Code Execution, RCE) en la versión 4.8.1 de PhpMyAdmin,
una conocida aplicación web que permite trabajar con bases de datos MySQL del
servidor.
La vulnerabilidad se
encuentra en la función 'checkPageValidity', del fichero
'/libraries/classes/Core.php' de PhpMyAdmin, la cual se encarga de comprobar
que el fichero a cargar usando el parámetro 'target' de 'index.php' es válido.
Mediante una doble codificación, es posible saltar la restricción para cargar
un archivo local arbitrario. Un ejemplo sería: '/index.php?target=db_sql.php%253f/etc/passwd'.
Además, para
conseguir la ejecución remota de código, puede aprovecharse que PhpMyAdmin
almacena en ficheros de sesión las sentencias SQL introducidas en su interfaz.
Así pues, introduciendo una sentencia como "select ''", y obteniendo el id de sesión gracias a la cookie
'phpMyAdmin', puede ejecutarse código PHP arbitrario, el cual podría llamar a
comandos del sistema. Un ejemplo completo sería el siguiente:
'index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_d41d8cd98f00b204e9800998ecf8427e'
A día de hoy no se
encuentra disponible una versión de PhpMyAdmin que solucione el fallo. Aunque
se requiera estar autenticado para la explotación de esta vulnerabilidad, el
uso de credenciales por defecto, fuerza bruta u otra vulnerabilidad que permita
acceder sin credenciales, podrían permitir el control de la máquina debido a
este fallo.
Para evitar la
explotación de vulnerabilidades como esta, es importante restringir el acceso a
herramientas de administración. Una posible solución es limitar la conexión a
IPs autorizadas, o el uso de autenticación Basic Auth con una conexión HTTPS.
Más información:
·
phpMyAdmin
4.8.x LFI to RCE (Authorization Required): https://blog.vulnspy.com/2018/06/21/phpMyAdmin-4-8-x-Authorited-CLI-to-RCE/
Fuente: Hispasec