lunes, 25 de octubre de 2010

Derecho al olvido

El "derecho al olvido" en Internet aún no es un derecho propiamente dicho pero se trabaja en ello. Se trata de que los usuarios de Internet puedan ejercer su derecho de eliminar cierta información bien por ser errónea o perjudicial.

Es sorprendente ver la cantidad de información que hay en Internet y aunque no nos damos cuenta, cada vez hay más datos nuestros enlazados en los buscadores. Existen multitud de servicios públicos que vuelcan sus bases de datos en Internet y muchas de ellas son accesibles desde cualquier buscador así que si ponemos nuestro nombre o el D.N.I. en Google tal vez nos encontremos con la sorpresa de encontrarnos con alguna multa, con las notas de las pruebas de acceso a la universidad, impagos, etc.

En mi caso, encontré que mis datos (nombre, apellidos y D.N.I.) aparecen en un Boletín Oficial del año 2005. En este boletín se da la lista de personas que abandonaron un vehículo en la vía pública y, curiosamente, "yo" soy una de esas personas, mis datos aparecen asociados a la matrícula de uno de los coches, más concretamente un BMW que, dicho sea de paso, si hubiera sido mio seguro que no lo habría abandonado. El caso es que esta información es errónea ya que nunca he abandonado un coche (y menos un BMW) así que me puse en contacto con la gente que gestiona el boletín y me remitieron al ayuntamiento ya que ellos son los que envían ese tipo de notificaciones y, por tanto, son ellos los que deben enviar la rectificación. El ayuntamiento le pasó la pelota a la policía local y estos, pese a que me confirmaron que se trataba de un error, le volvieron a pasar la pelota al ayuntamiento.

Después de unos cuantos correos me dijeron que aunque el ayuntamiento enviase una nota donde se rectificase la información no era posible modificar el Boletín Oficial sino que dicha nota de rectificación saldría publicada en un próximo boletín lo cual tampoco es que me solucione la papeleta ya que en Internet seguiré apareciendo como el "abandona coches".
Bien es cierto que si me comentaron que era posible "bloquear" esos datos en el motor de búsqueda de su web pero eso si, los datos seguirían estando allí.

El caso es que el tiempo va corriendo y sigo apareciendo como "abandona coches". Confío que eliminen esa información del boletín ya que creo que tengo derecho a ello pero es posible que pasen del tema y entonces no me dejan muchas opciones, o paso yo también del tema o voy por la vía legal... en fin, tiempo al tiempo.

Para quien quiera informarse un poco más sobre el tema del "derecho al olvido" aquí os dejo algunos artículos relacionados:
Y a todo esto, ni que decir tiene que cualquier persona que quiera desaparecer de este blog solo tiene que decirlo dejando un comentario y pondré mi granito de arena para que todos tengamos derecho al olvido.

jueves, 21 de octubre de 2010

Inyección SQL en la web del metro de Madrid (2/2)

Hace algo más de un mes os comentaba sobre una vulnerabilidad de inyección de código SQL en la web del metro de Madrid, pues bien, recientemente se han puesto en contacto conmigo para indicarme que ya estaba resuelto el problema aunque tengo mis dudas al respecto.

La vulnerabilidad se encontraba en la parte de la web encargada de mostrar los planos de las estaciones.


Al acceder al plano de una estación se abre una nueva ventana en cuya url hay una serie de parámetros (tipo, idParada e idioma)


En este caso el parámetro vulnerable era idParada que se concatena a la sentencia SQL sin ningún tipo de filtro por lo que al añadirle la típica comilla simple se producia un error de SQL que era mostrado en pantalla, lo cual tampoco debería ocurrir pero parece esta activado el modo debug.


En el mensaje de error se puede ver como esta construida la consulta SQL por lo que es facil modificarla para añadir la información que nos interese. También aparece la ruta completa del fichero que ha producido el error (full path disclosure) que como ya he comentado en alguna ocasión puede ser de gran utilidad con vistas a llegar a tener acceso al fichero.

Para modificar la consulta y añadir la información que deseada es posible utilizar UNION, por ejemplo http://prs.metromadrid.es/metro/metronet/mapa.aspx?tipo=ESTACION&idParada=-1 union select 1,1,'Nombre'&idioma=es es decir, añadir un registro con coordenadas 1,1 y con el texto Nombre como nombre de la supuesta estación. También se establece idParada a -1 para conseguir que la consulta solo devuelva un registro, el nuestro, con lo que se pretende que en el mapa solo se visualizase nuestra estación falsa.


Efectivamente, se consigue que se muestre una única estación en las coordenadas 1,1 pero no se muestra el texto "Nombre" tal y como se había pensado lo cual es un problema ya que pese a que existía inyección sql no se podía mostrar información en pantalla... ¿o si?

Una de las curiosidades de SQL es que cuando se produce un error de tipos SQL informa de que el valor "x" no se puede convertir al tipo "y", por ejemplo, si intentamos convertir el texto "Prueba" a un número SQL mostrará un error diciendo que "Prueba" no se puede convertir a int ¿como podemos aprovechar esto? La consulta original devuelve las coordenadas x e y de la estación indicada, estos valores son numéricos por lo que si intentamos mostrar un valor de tipo texto en cualquiera de estos campos se producirá un error de tipos y nos mostrará el texto que ha producido el error, por ejemplo, la URL http://prs.metromadrid.es/metro/metronet/mapa.aspx?tipo=ESTACION&idParada=-1 union select 'Forzar error',1,'Nombre'&idioma=es intenta asignar como coordenada x el valor "Forzar error" lo que produce el siguiente mensaje de error.


Aqui podemos ver que se muestra el texto "Forzar error" que es lo que hemos especificado en la consulta sql inyectada por lo que ya tenemos una forma de devolver información. Por ejemplo, si quisieramos saber que versión de SQL se esta utilizando podriamos utilizar la siguiente url http://prs.metromadrid.es/metro/metronet/mapa.aspx?tipo=ESTACION&idParada=-1 union select @@version,1,'Nombre'&idioma=es


Como era de suponer se trata de SQL Server 2005. Es curioso que SQL, en su afan de ayudar, muestra los mensajes de error de forma muy detallada pero, en este caso, toda esa información se puede volver en su contra y permite acceder a información que no deberia ser visualizada.

Para conocer las bases de datos existentes en el servidor podemos acceder a la tabla sysdatabases que se encuentra en la base de datos master de SQL Server. Para ello accederemos a la URL http://prs.metromadrid.es/metro/metronet/mapa.aspx?tipo=ESTACION&idParada=-1 union select NAME,1,'Nombre' from master..sysdatabases&idioma=es y nuevamente se muestra el mensaje de error de conversión de tipos donde podemos ver el nombre de una de las bases de datos existentes.



Aunque en este caso no nos sirve de mucho ya que la base de datos que se muestra es master que ya sabiamos que existía. El problema es que solo se muestra el primer registro que produce el error así que, o bien añadimos una clausula WHERE para evitar la base de datos con nombre master y volvemos a ejecutar la consulta o buscamos una forma alternativa de mostrar la información de varios registros en un único campo y como es de suponer, me inclino por esta última opción.

Vamos a aprovechar la potencia del lenguaje XML. SQL Server incluye la posibilidad de devolver la información de una consulta como XML en texto plano, es decir, devolver un único registro con un único campo de tipo texto que contendrá el XML resultante. Para indicarle a SQL que nos devuelva el resultado en XML solo hay que incluir FOR XML RAW al final de la sentencia SELECT.
En nuestro caso queremos que uno de nuestros campos que supuestamente debe devolver la coordenada de la estación devuelva un XML con la información de las bases de datos existentes así que la URL resultante seria: http://prs.metromadrid.es/metro/metronet/mapa.aspx?tipo=ESTACION&idParada=-1 union select (select NAME from master..sysdatabases FOR XML RAW),1,'Nombre'&idioma=es


Podemos ver como se devuelve el texto en formato XML y que se muestra el nombre de varias bases de datos (master, tempdb, model, msdb, metromadridmetromadridBack) aunque la mayor parte son propias de SQL Server y las únicas "interesantes" son metromadrid y metromadridBack, esta última tiene pinta de ser una copia de seguridad.

Una vez hecho esto es facil acceder a las tablas existentes en el servidor (mediante sysobjects) así como a la información de las mismas. También se podria pensar en utilizar xp_cmdshell para ejecutar comandos en el servidor pero parece que eso si esta bloqueado y el usuario de base de datos no se tiene permiso para ejecutar ese tipo de procedimientos.

Como podeis ver es una forma curiosa de acceder a la información pero igualmente válida que puede darle muchos dolores de cabeza a los administradores de la web si alguien mal intencionado modificase la información del servidor.


Detección del problema: 04/09/2010
Comunicado a la empresa: 04/09/2010
Resolución: 18/10/2010

sábado, 16 de octubre de 2010

Best Buy Easy Home Combo REC

Tras un par de semanas probando un i-Joy Jenas DVD+TDTR decidí devolverlo por los problemas que ya comenté y acto seguido compre un Best Buy Easy Home Combo REC que, además, era más económico, solo 39.95€ en Eroski.

Una de las primeras cosas que llama la atención es que en la caja no se indica si este modelo lee DivX/xVid, solo hay un pequeño logo con las siglas CVF (Compressed Video Files) lo que da que pensar que si es posible leer este tipo de archivos pero aún así quise confirmarlo y le pregunté a uno de los chicos que había por allí. Según él si leía DivX/xVid pero no lo ponía en la caja para no pagar derechos por el uso del logo de DivX. La respuesta la verdad es que no me dejó muy convencido pero igualmente me lo lleve a casa para probarlo y ver que, efectivamente, si lee DivX/xVid.

Características:

  • TDT / USB
    • Sintonizador estandar (no HD)
    • Menú multilenguaje (Español, Ingles, Frances, Italiano, Portugues y Aleman)
    • Guía de programación electrónica (EPG)
    • Teletexto
    • Subtítulos (mediante el estandar TDT o por teletexto)
    • Permite grabación directa, programada y en modo TimeShift en dispositivos USB (formatos MPG y DVR)
    • Permite la programación desde el EPG y crear "eventos" para que cambie automáticamente de canal.
    • Reproduce archivos MPG y DVR desde el usb.
    • Dispositivos USB 2.0. en FAT32. Discos duros, llaves usb, etc.
  • DVD / USB
    • Menú multilenguaje (Español, Ingles e Italiano)
    • Reproduce MPEG-1, MPEG-2, MPEG-4 (DivX, xVID), SVCD, VCD, MP3, JPEG, FOTO CD, DVD, CD-R, CD-RW, DVD±R y DVD±RW
    • Multilenguaje en subtítulos y sonido
    • Dispositivos USB 2.0. en FAT32. Discos duros, llaves usb, etc.
    • Subtítulos en formato .srt con el mismo nombre que el archivo (acepta varios idiomas).
  • Firmware
    • Receptor: Easy Home Combo REC
    • Hardware: MPEG-109
    • Software: EasyHCR_M3101D_100803_001 (es decir, actualizado el 03/08/2010)
    • Firma: MAY 22 2009 22:10:00
    • Mando a distancia: GK-B001


Puntos débiles:
En el apartado de conexiones está bastante limitado ya que solo dispone de un euroconector y la correspondiente entrada y salida de antena.
También se echa en falta un display en el cual se pueda ver el canal seleccionado en el TDT o el número de pista que se esta reproduciendo en el DVD. Es curioso ya que el número de pista tampoco aparece en el menú en pantalla del DVD.

Se trata de dos equipos distintos, el TDT por un lado y el DVD por otro por lo que existen dos firmwares distintos siendo bastante peor el del DVD, por lo menos en lo que se trata de los menús ya que están algo menos cuidados que los del TDT, por ejemplo, cuando se introduce un disco con varios archivos, si no caben todos en pantalla no nos muestra la típica flecha de scroll indicando que hay más archivos de los que se ven pero es un mal menor porque de todos modos si se baja pulsando las flechas del mando si van apareciendo archivos.


Al tratarse de dos equipos diferentes y siendo el DVD el único que reproduce archivos de vídeo comprimido nos vemos obligados a cambiar a modo DVD para reproducir un archivo comprimido. La reproducción de archivos mpg desde el TDT está limitada al modo PVR por lo que los archivos mpg deben estar en la carpeta correspondiente del USB.

Puntos fuertes:
El firmware utilizado para el TDT está bastante depurado y da muchas facilidades a la hora de manejar el aparato, por ejemplo, la tediosa labor de ordenar los canales del TDT está bastante bien realizada ya que hasta se dispone de un buscador para no tener que ir desplazándose por los más de 50 canales existentes.


El EPG funciona de forma correcta y permite seleccionar los programas que deseamos grabar en el dispositivo USB. También nos facilita la creación de "eventos" de forma que podemos marcar uno o varios programas y cuando llegue su hora de emisión se cambiará automáticamente a ese canal de forma que no nos perderemos nuestras series favoritas por un despiste.


La función grabador permite grabar tanto en modo normal como en TimeShift, es decir, dando la posibilidad de pausar el programa actual y retrocederlo mientras se sigue grabando. Esto es últil por ejemplo si llega alguna visita mientras estamos viendo una película en el TDT ya que podremos pausarla, atender la visita y cuando se vayan continuar por donde nos habíamos quedado y lo mejor es que no tenemos que esperar a que termine la película para empezar a verla (como en el caso de una grabación normal) sino que podemos verla mientras se graba el final de la misma y podremos saltarnos los anuncios. Es decir, al final seria como si repartiésemos el tiempo que hemos estado con la visita con el tiempo de los anuncios de forma que seria como si hubiéramos atendido la visita mientras emitían los anuncios.


Otra opción interesante de la grabación es que permite grabar tanto en formato PS, es decir, MPG (compatible con cualquier ordenador y reproductor de DVD) como en formato TS (DRV) que tiene la característica de grabar todas las pistas de audio y los subtítulos de forma que una película  que hayan emitido en dual y subtitulada, podríamos reproducirla y seleccionar tanto el audio como los subtítulos.

El mando a distancia tiene los botones bien distribuidos y agrupados según su funcionalidad, diferenciándose en forma y tamaño lo que facilita su uso.
Se puede utilizar incluso apuntando en sentido contrario al receptor lo cual es bastante cómodo y evita tener que estar buscando el ángulo correcto.

Más imágenes:
Modo TDT



Modo DVD



viernes, 8 de octubre de 2010

Inyección SQL en la librería Diego Marin

Diego Marin es una de las librerías más conocidas de Murcia, siempre la he considerado una librería de calidad pero viendo su web parece que la descuidaron un poco y era fácil encontrar vulnerabilidades de tipo inyección SQL y algún XSS. Y, si bien, no esta todo resuelto al 100% parece que ya lo han dado por válido.

Vamos por lo fácil, el XSS. Como es de esperar se encuentra en el buscador y, pese a que se tiene la precaución de filtrar el uso de las comillas (tanto dobles como simples) no hay ningún otro tipo de filtro por lo que saltarse el uso de estas comillas es sencillo, es suficiente con utilizar String.fromCharCode() en lugar de entrecomillar la cadena de texto que se desea escribir.


La inyección de SQL tampoco estaba demasiado escondida ya que prácticamente ninguna página filtraba los parámetros que se le pasaban en la url y estos eran utilizados directamente en la consulta SQL. Por ejemplo, al visualizar los detalles de cualquier libro podíamos ver el parámetro id_publicacion en la url, al cual se le asociaba el código del libro visualizado.


Al modificar el valor del parámetro id_publicacion añadiéndole una comilla simple se producía el siguiente error:


Donde era posible apreciar que el valor id_publicacion se utilizaba en la consulta SQL sin filtrarse de forma que podíamos utilizar este parámetro para "inyectar" cualquier consulta en el servidor y acceder a toda la información disponible, incluidas las contraseñas de los usuarios registrados.



Otras páginas afectadas eran: publicaciones.php (parámetro tema) y paginas.php (parámetro pagina)

Detección del problema: 21/09/2010
Comunicado a la empresa: 25/09/2010
Resolución: 08/10/2010

miércoles, 6 de octubre de 2010

Wally en la DGT

Parece que la DGT ha decidido fichar a Wally para sus nuevas campañas de seguridad vial... ¿o tal vez sea que el travieso de Wally ha estado jugando con otro XSS?

lunes, 4 de octubre de 2010

i-Joy Jenas DVD+TDTR

El modelo Jenas de la marca i-Joy es un combo DVD+TDT que permite grabación por USB. Es un modelo de la gama media/baja y su precio es de 49€ en Eroski.

Las prestaciones que promete el Jenas son bastante interesantes.



Características:

  • TDT
    • Sintonizador estandar (no HD)
    • Menú multilenguaje
    • Guía de programación electrónica (EPG)
    • Soporte para teletexto y subtítulos
    • Permite grabación directa y programada en dispositivos USB (formato MPG)
  • DVD
    • Reproduce MPEG-1, MPEG-2, MPEG-4 (DivX, xVID), SVCD, VCD, MP3, JPEG, FOTO CD, DVD, CD-R, CD-RW, DVD±R y DVD±RW
    • Multilenguaje en subtítulos y sonido
  • USB
    • Reproduce MPEG-1, MPEG-2, MPEG-4 (DivX, xVID), MP3, JPEG.
    • Dispositivos USB 2.0. en FAT32. Discos duros de hasta 1TB.
    • Subtítulos en formato .srt con el mismo nombre que el archivo.
  • Firmware
    • Fecha actualización: 20080623
    • Info. Sintonizador: CDT_CDT_9FT225_70
    • Versión firmware: 124.24ANbH64-0000
    • Versión modelo: GENERAL-PT001







Puntos débiles:
Una de las primeras cosas que llama la atención al conectar el aparato es ver que los menús son los mismos que utilizan otras muchas marcas de gama media/baja y es que parece ser que se utiliza el mismo firmware para varios reproductores lo cual reduce costes pero también afecta negativamente a la calidad final del aparato.


También es curioso que no permite abrir la bandeja del DVD a no ser que nos encontremos en modo DVD lo que, en mi opinión, es un error ya que tal vez queramos meter un DVD de una película mientras estamos viendo el TDT para verla minutos más tarde pero esto no es posible y nos obliga a pasar al modo DVD (pulsando el botón DVD/DVB del mando) y luego pulsar el botón Open/Close para abrir la bandeja, meter el disco y volver a pulsar el botón DVD/DVB (que además de volver al modo TDT también cerrará la bandeja)
En algún foro he leído que un usuario devolvió su reproductor al pensar que estaba estropeado porque no se abría la bandeja del DVD...

Un gran problema de este modelo, como ya comentaba anteriormente, es el firmware, los menús no son ágiles, sobre todo a la hora de gestionar los canales de TDT ya que, pese a que nos permite cambiarlos de posición sorprende ver que al pulsar el 1 en el mando no nos aparece el canal que hemos puesto en primera posición sino el canal que encontró primero al sintonizar los canales y esto es bastante frustrante cuando existen más de 50 canales de TV y tenemos que ir pasandolos uno a uno (pulsando la flecha arriba o abajo) o bien recordar el orden en el que los encontró, por ejemplo, en mi caso laSexta me aparece en el canal 44 y pese a que la he puesto en la posición 6 tengo que pulsar 44 en el mando para poder verla.
En el servicio técnico me han comentado que se trata de un problema con el firmware (como ya suponía) y que tienen pensado sacar una nueva versión en breve pero que, en ocasiones, es posible realizar la ordenación de canales desactivando la opción LCN Control en el momento de realizar la búsqueda. Si finalmente conseguimos que nuestra lista de canales aparezca ordenada (al pulsar el 1 debe aparecer el canal 1) debemos asegurarnos que la configuración no se pierde al apagar y volver a encender el equipo. Si perdemos la ordenación no quedará más remedio que esperar la actualización, enviarlo al servicio técnico o devolverlo si es que aún está en garantía.

El manual de usuario que se entrega con el aparato es bastante deficiente, de hecho, pese a que indica que es el manual de este modelo he visto en la página web de i-Joy que otros modelos comparten el mismo manual de forma que se puede decir que es un manual genérico y hay muchas cosas que no estan bien explicadas e incluso algunas son erroneas. Por ejemplo, en el manual dice que se puede hacer CD-Ripping, es decir, pasar un CD de Audio directamente al USB en formato mp3 y también dice que es posible copiar archivos MP4 y JPG desde el disco al USB pulsando el botón REC pero esta funcionalidad no esta permitida (confirmado por el servicio técnico).

El mando a distancia tiene un alcance algo escaso y hay que apuntar en linea recta al receptor para que funcione correctamente. Los botones son demasiado duros y la organización de los mismos es un tanto caótica de forma que es bastante difícil de utilizar sin mirarlo aunque imagino que es cosa de acostumbrarse.
Un problema adicional que me he encontrado con el mando es que comparte algunos de los códigos con un TDT/SAT marca mVision de forma que, por ejemplo, al pulsar el botón STOP del DVD el mVision cambia al canal 2 por que conviente tener apagado el otro TDT para no interferir.


Puntos fuertes:
Como es de suponer su mayor punto fuerte es el precio y, si no somos demasiado exigentes es un aparato a tener en cuenta.

Un punto a favor de i-Joy es el servicio técnico, la verdad es que me han sorprendido gratamente con la velocidad que me han atendido y, pese a que no me han podido resolver el problema en el acto han sabido localizarlo y trabajan en la solución. Además, si decidimos enviar el aparato al servicio técnico (en Madrid) los portes son a cargo de i-Joy.
El correo electrónico del servicio técnico es postventa@ijoy-europe.com, teléfono 91 551 17 87 y fax 91 433 65 67

El sintonizador TDT no es que sea el mejor de su segmento pero tiene un comportamiento aceptable y no pixela la imagen como muchos otros aparatos de gama media/baja.

El menú del EPG muestra bastante información del programa actual (y posteriores) y tiene función autoscroll para que podamos leer todo el texto sin problemas.

La velocidad de grabación desde el TDT al USB es bastante buena y si el dispositivo es medianamente rápido apenas pixela.

La reproducción de archivos DivX/xVID es correcta aunque no sabría decir la lista exacta de formatos que soporta pero he probado unos cuantos y no he tenido problemas aunque con un archivo me ha aparecido el mensaje "formato no soportado" pese a que lo ha reproducido correctamente.

sábado, 2 de octubre de 2010

Las puertas del sexshop abiertas de par en par

Mae Sensations o La Sex Shop en Casa es una tienda erótica ampliamente conocida en internet que cuenta con más de 120.000 clientes y 600 colaboradores.

La web es un poco curiosa ya que hay partes desarrolladas en ASP y otras en PHP accediendo SQL Server 2005 pero bueno, esto no es que sea ni malo ni bueno, solo que no suele ser lo habitual.



Lo que si era habitual es que no se tenía demasiado cuidado al filtrar los parámetros de entrada, por ejemplo, al acceder a las fichas de los productos se podía provocar un full path disclosure, o lo que es lo mismo, se podía forzar un error donde se mostraba la ruta completa del archivo en ejecución.


Afortunadamente, pese a ello, era dificil realizar inyección SQL ya que si se tiene en cuenta el caso de la comilla simple y no es posible "romper" la cadena que se ejecutará sobre la base de datos pero ¿existirá alguna otra página donde sea posible realizar inyección SQL? aparentemente no pero hay una sección especial llamada "Webmaster" donde cualquiera puede apuntarse y tener así "su" propia tienda erótica online, es decir que mediante Mae Sensations se da la posibilidad de ser "colaborador" y obtener comisiones por las compras que se hayan hecho desde nuestra página web. Como comentaba anteriormente existen más de 600 colaboradores, por ejemplo, Puta Locura la famosa web de Torbe es uno de ellos.


Los colaboradores disponen de un acceso especial a la web desde el cual controlar sus comisiones, el número de artículos vendidos y estadísticas variadas.


Y es aquí donde estaba el problema, una vez logeados, era posible acceder a varios informes que si permitían inyección SQL.





Detección del problema: 12/08/2010
Comunicado a la empresa: 13/08/2010
Resolución: 19/11/2010