Algo que llama la atención rápidamente es que parece que todos los hoteles que utilizan este sistema de reservas son de cuatro o más estrellas lo que hace suponer que la seguridad es un factor importante y es grato ver que la gestión de reservas utiliza el protocolo https algo bastante lógico si se desea transmitir confianza al realizar pagos online.
Veamos como funciona el motor de EHBOX accediendo a uno de los hoteles que utilizan este sistema, por ejemplo, el "Grand Hotel Central" de Barcelona. Al acceder a la opción de reservas tenemos que seleccionar la fecha de entrada y la de salida del hotel así como el número de adultos que ocuparán la habitación, una vez hecho esto procederemo a pulsar el botón "Ver disponibilidad"
Justo en ese momento se abrirá una nueva ventana donde podemos ver el motor de reservas de EHBOX en acción.
y pese a que la URL tiene algunos parámetros no he visto que ninguno cause ningún problema pero si me he fijado que el enlace "Información del hotel" abre una nueva ventana con la URL https://bookings.ehbox.com/hotel-info.php?hotel=179&lang=es y es en dicha URL donde empiezan los problemas. Esta nueva página toma como parámetro el código del hotel y el idioma en el cual se mostrará la información.
Si modificamos el parámetro hotel añadiendo una comilla simple se muestran una serie de errores que hacen referencia a MySQL y donde se puede ver la ruta completa de un par de archivos del servidor (Full Path Disclosure)
Al ver que el error esta relacionado con MySQL da que pensar que tal vez esta página este afectada por una vulnerabilidad de inyección sql cosa que no será muy dificil de ver ya que si intentamos el típico UNION SELECT 1 vemos que el mensaje de error cambia y que además se muestra la información de la base de datos aunque no parece estar relacionada con el hotel en cuestión pero aún así, tiene "buena pinta"
Si seguimos añadiendo campos a nuestra consulta de unión, es decir,
...
vemos que finalmente encontramos un resultado válido y es en este momento donde podremos acceder al servidor de bases de datos.
Podemos saber que versión de MySQL se está utilizando simplemente susituyendo alguno de los campos que se muestran (4,6,11,5,8,9) por la sentencia version() propia del lenguaje MySQL
o hacer cosas más interesantes como acceder a la listas de todas las tablas existentes en el servidor y a su contenido.
De esta forma podemos acceder a información relacionada con las reservas realizadas, los clientes, hoteles e incluso los usuarios que acceden a la página. También se puede acceder a otras bases de datos alojadas en el mismo servidor, por ejemplo, hay una base de datos llamada "intranet" que también parece contener información bastante interesante.
Pese a todo, debo reconocer que el problema de esta página (hotel-info.php) parece un fallo puntual ya que no he detectado ninguna otra página que no filtre los parámetros de entrada y veo que si se han tomado otras medidas de seguridad como la de no permitir la lectura/escritura de ficheros del servidor desde MySQL o guardar las contraseñas encriptadas en la base de datos.
Intenté ponerme en contacto con la empresa mediante una dirección de correo electrónico que aparece en su página web pero el correo me fué devuelto así que les deje un comentario utilizando el formulario de contacto de la misma y no tardaron en comunicarse conmigo para ver cual era el problema. A día de hoy parece que ya lo han resuelto aunque nadie se ha puesto en contacto conmigo para confirmarmelo.
Detección del problema: 18/08/2010
Comunicado a la empresa: 21/08/2010
Resolución: 24/08/2010
La forma mas sencilla y cómoda de asegurarte unas excelentes vacaciones es haciendo una reserva online, antes temia usar este sistema pensando que no funcionaria pero la verdad es que nunca he tenido problemas.
ResponderEliminarSaludos!
Hola Florentina, no digo que el sistema de reservas no funcione. Al igual que tu pienso que es un sistema muy bueno para organizar las vacaciones pero si que digo que hay que tener cierto cuidado, ya no solo para los usuarios de estos sistemas de reservas online sino también los propietarios de los hoteles y los dueños de los motores de reservas ya que cualquier posible fallo repercute en todos ellos.
ResponderEliminarSaludos