24/06/2018
Boletín de ciberseguridad
Nivel: Importante
Vulnerabilidad en PhpMyAdmin 4.8.x permite ejecución remota de código
Descripción:
El equipo de seguridad ChaMD5 ha encontrado una vulnerabilidad del tipo «Inclusión de Fichero Local» (Local File Inclusión, 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 ‘<?php phpinfo();exit;?>'», 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.
Solución:
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.
Fuentes:
phpMyAdmin 4.8.x LFI to RCE (Authorization Required):
https://blog.vulnspy.com/2018/06/21/phpMyAdmin-4-8-x-Authorited-CLI-to-RCE/
phpmyadmin4.8.1 getshell:
https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485036&idx=1&sn=8e9647906c5d94f72564dec5bc51a2ab&chksm=e89e2eb4dfe9a7a28bff2efebb5b2723782dab660acff074c3f18c9e7dca924abdf3da618fb4&mpshare=1&scene=1&srcid=0621gAv1FMtrgoahD01psMZr&pass_ticket=LqhRfckPxAVG2dF%2FjxV%2F9%2FcEb5pShRgewJe%2FttJn2gIlIyGF%2FbsgGmzcbsV%2BLmMK