Aunque es una muy buena practica, instalar todos los componentes y librerías de un servidor web Apache, para muchos es muy cómodo utilizar “paquetes” que incluyen muchas librerías y software de uso común, como por ejemplo PHP, Perl, MySQL, etc. Este tipo de paquetes, permiten que un desarrollador pueda comenzar a trabajar en su aplicación web rápidamente sin tener que preocuparse demasiado por la configuración del servidor web y de los módulos necesarios para ello. XAMPP es uno de estos paquetes y actualmente se encuentra muy difundido, ya que incluye Apache, PHP, Perl, MySQL, ProFTPD, OpenSSL, PHPMyAdmin, entre otras herramientas y utilidades. Sin embargo, en muchas ocasiones el riesgo que se tiene con este tipo de productos, es que al final, el proveedor siempre intentará que su producto sea compatible con la mayor cantidad de plataformas posibles y para ello, en algunas ocasiones, intentan hacer uso de configuraciones estándar que no son simpre tan seguras u óptimas como debería.

En el caso de XAMPP se han descubierto a lo largo de los últimos años, una serie de vulnerabilidades que demuestran que no siempre es una buena idea que “te lo den todo hecho”, en está publicación se mencionarán algunas de las vulnerabilidades más comunes en este producto.

WebDav con Usuario y Password por defecto.

En la versión 1.7.3 de XAMPP, se detecto una seria vulnerabilidad relacionada con las instalaciones por defecto de WebDav, aunque no se trataba de una vulnerabilidad directamente relacionada con el software (nada de stack o buffer overflows) se trata simplemente, que al momento de instalar XAMPP, por defecto habilita la implementación de WebDav que viene incluida en el producto, sin tan siquiera alertar al administrador de ello. Aunque requiere autenticación, con utilizar el usuario y la contraseña por defecto es suficiente para acceder y poder leer, eliminar y borrar ficheros. Como se ha visto anteriormente y como sin duda el lector ya sabrá, si un atacante tiene la posibilidad de subir ficheros de forma arbitraria al servidor web, es más que probable que pueda subir ficheros maliciosos como una WebShell para tener acceso al servidor y ejecutar comandos de forma remota utilizando el servidor web como pivote.

La siguiente imagen enseña como utilizando el usuario y la contraseña por defecto (wampp/xampp) es posible acceder al webdav utilizado Cadaver.

cadaverAhora, resulta muy sencillo subir una webshell en PHP al objetivo. una de mis favoritas es: http://pentestmonkey.net/tools/web-shells/php-reverse-shell sin embargo puede ser mucho mejor utilizar la clásica c99 en entornos Windows.

c99

Como puede apreciarse en la imagen anterior, una webshell se ha subido al servidor web utilizando Cadaver con el usuario y contraseña por defecto del WebDav.

File Disclosure y XSS

Nuevamente, en la versión 1.7.3 de XAMPP existen vulnerabilidades del tipo File Disclosure y XSS en la aplicación web que viene por defecto y que sirve para ver detalles sobre la instalación del servidor web. Estas vulnerabilidades permiten listar ficheros en el servidor web vulnerable y atacar a sus clientes respectivamente, además de ser muy fáciles de reproducir, representan un riesgo muy claro que en su día afecto a una buena cantidad de servidores web en internet (no hace mucho, por cierto).

File Disclosure

Esta vulnerabilidad fue descubierta en el código de la página showcode.php la cual intenta obtener el contenido de un fichero determinado partiendo de la variable basename($_SERVER[‘PHP_SELF’]) Lo que realmente hace este script, es parsear un path determinado buscando la ultima coincidencia del delimitador “/”. Esto quiere decir, que un atacante, podría establecer este delimitador en una petición y posteriormente intentar listar el fichero que le interesa leer del servidor, por ejemplo:

http://x.x.x.x/xampp/showcode.php/c:boot.ini?showcode=1

Permitirá listar el contenido del fichero boot.ini. Además, el parámetro showcode indica al script que el contenido se debe retornar como respuesta del servidor al cliente. La siguiente imagen enseña como se puede listar dicho fichero.

 

boot

XSS

Por defecto, XAMPP cuenta con algunos scripts de ejemplo para desarrolladores que quieran programar con PHP, los cuales son útiles para una persona que se encuentra en proceso de aprendizaje, sin embargo, es muy recomendable eliminarlos en un entorno productivo, ya que existen algunas vulnerabilidades XSS sobre dichas páginas que pueden afectar a los clientes del servidor web si un atacante consigue que visiten dichas “secciones” del servidor.

En concreto dichas páginas son phonebook.php y biorhythm.php las cuales se encuentran alojadas en la raíz de la aplicación por defecto “xampp”

Comprobarlas es muy simple, por ejemplo realizando las siguientes peticiones:

http://x.x.x.x/xampp/phonebook.php/«><script>alert(«XSS»)</script>

o

http://x.x.x.x/xampp/biorhythm.php/«><script>alert(«XSS»)</script>

Esto es suficiente para comprobar dichas vulnerabilidades, tal como enseñan las siguientes imágenes

xss

 

xssxampp

Estas son solamente algunas de las vulnerabilidades descubiertas en XAMPP, sin embargo, casi que en cada versión que se ha liberado de este producto, se han descubierto nuevas vulnerabilidades, así que en la próxima publicación se mencionarán unas pocas más.