26 octubre 2010

Vulnerabilidades en ListaRobinson.es

En Junio del 2009, la Agencia Española de Protección de Datos (AEPD) junto con la Federación de Comercio Electrónico y Marketing Directo (FECEMD) presentaron en Madrid un nuevo servicio para los ciudadanos denominado Lista Robinson en el cual (citando la propia nota de prensa sobre el Servicio Lista Robinson) "pueden inscribirse para evitar recibir comunicaciones comerciales, mediante llamadas, sms, correo postal y correo electrónico, de empresas con las que no mantenga o no haya mantenido algún tipo de relación."

Captura de la nota de prensa sobre el Servicio Lista Robinson

El servicio que se puede visitar en www.listarobinson.es apareció en multitud de medios tras la rueda de prensa (ElPais, ElMundo, 20Minutos, ABC...), e incluso tras su presentación apareció una polémica sobre los servicios de pago que se ofrecía a las entidades para la descarga de los ficheros, que podréis consultar aquí y aquí. Se pone en duda la calidad del servicio, ya que las entidades autorizadas y registradas por FECEMD en el servicio dispondrían del fichero previo pago de una cantidad de dinero.

Pues bien, a continuación os dejamos con un artículo que hemos recibido a nuestro buzón de contribuciones sobre dicha web del servicio que explica, entre otros temas, la exposición de dicha Lista Robinson sin necesidad siquiera de registrarse como usuario, ni teniendo acceso como entidad autorizada. El artículo, según su autor, pretende ser meramente constructivo y formativo, para evitar caer de nuevo en este tipo de vulnerabilidades referentes a la seguridad en aplicaciones web.

Resaltar la rapidez en la respuesta y actuación de la federación FECEMD (que hace unos días cambió su nombre a adigital) encargada de dicho servicio frente a estas vulnerabilidades, que las subsanaron en apenas unas pocas horas tras su reporte por parte de SecurityByDefault al recibir esta contribución anónima.

--------------------------------------------

Conocía el servicio desde que se presentó, debido a su aparición en multitud de medios. El mensaje para los ciudadanos era claro "Si te registras, nadie más te molestará por teléfono, correo postal...". 

Debido a las quejas de un familiar cercano frente a una serie de llamadas que recibió a las tantas de la madrugada por parte de una compañía telefónica con el fin de ofrecerle un nuevo móvil, estuve a punto de recomendarle el servicio de ListaRobinson.es, aún no habiéndolo probado personalmente (sinceramente, no creía mucho en este tipo de cosas). Y ahora menos todavía...

Me dispuse a echar un vistazo rápido a la web, y me encontré una serie de (lo que considero yo) vulnerabilidades con un desenlace que realmente, no me esperaba en absoluto. Quiero dejar claro que no ha sido necesario registrarse en el servicio de ninguna manera, ni como usuario ni como entidad (no creo que hubiera podido conseguir la autorización pertinente...):

Sistema de CAPTCHAs

El primer sitio dónde accedí fue a un formulario de autenticación al servicio, en el que me encontré el típico CAPTCHA para evitar la automatización de procesos.

CAPTCHA de acceso al servicio mediante el formulario de autenticación

Cual fue mi sorpresa, cuando me percaté revisando el código fuente del formulario que ¡el valor del CAPTCHA aparecía como un campo oculto!

Valor del CAPTCHA incluido como campo oculto
Esto me hizo bastante gracia, pero bueno, no deja de ser anecdótico. Espero que dicho CAPTCHA no aparezca como validación en otras secciones de la web, ya que para realizar un ataque de fuerza bruta nos facilitaría muchísimo la tarea.

Funcionalidades

Accediendo al código fuente HTML de la web, se referencia a un fichero javascript que se incluye en el marco superior, llamado "funciones.js".

Código fuente HTML de la cabecera de la web
Fichero funciones.js
En él, si buscamos por ejemplo la cadena ".asp", daremos con lo que parecen funcionalidades del servicio. Obtenemos 8 resultados. Tras probar los primeros 5, parece ser que no existen (por lo menos en el raíz del servidor) así que, vamos con el siguiente:

Funcionalidad servicioempresas_00.asp
Al acceder, da un error, parece que falta algún parámetro válido, no es suficiente con ejecutarlo tal cual:

Curioso que acabe con esos dos carácteres de _00...¿y si probamos con _01?

Funcionalidad servicioempresas_01.asp
¡Existe! ¿Y con _02?

Funcionalidad servicioempresas_02.asp
¡¡Tambien existe!! Y así sucesivamente, vemos que conseguimos acceder a 6 funcionalidades que se suponía, sólo eran accesibles siendo una entidad registrada y autorizada para acceder al Servicio Lista Robinson. Al parecer, esta funcionalidad de servicioempresas corresponde con la de consulta de registros únicos en la lista por parte de las entidades. Vamos, buscar a ciudadanos y sus datos uno por uno, según domicilio, móvil, dirección de correo electrónico, o cualquier dato:


Funcionalidad servicioempresas_03.asp
Funcionalidad servicioempresas_04.asp
Funcionalidad servicioempresas_05.asp

Funcionalidad servicioempresas_06.asp
Esto también ha sido gracioso, ¡menos mal que en ese momento sabía contar del 1 al 6! De todas formas, esto no deja de ser también anecdótico. Aún siendo un servicio al que sólo pueden acceder entidades autorizadas y registradas, se ofrece como gratuíto. Ir ciudadano por ciudadano, no es muy cómodo que digamos.

Volviendo al fichero funciones.js, otra de las funcionalidades que se encuentran y que responden en la página web es "exportar_01.asp".

Funcionalidad exportar_01.asp en funciones.js
El nombre a simple vista tiene muy buena pinta....Al parecer acepta un parámetro de tipo "empresa". Por curiosidad, y tras ver como ejecutando el .asp tal cual no veía nada, coloqué un 1 como valor de dicho parámetro y al poco tiempo ví que algo se estaba ejecutando en el servidor:

Ejecutando exportar_01.asp (1)
Ejecutando exportar_01.asp (2)
Vaya vaya, al parecer la funcionalidad internamente genera el fichero para su descarga posterior para las entidades:

Fin del proceso de exportar_01
En la captura se aprecia como se informa a la entidad que haya ejecutado esta funcionalidad, que necesita instalar una aplicación "Programa SLR" para acceder a su servidor y poder descargarse la lista. Pues la descargamos e instalamos.

Como se asume que esta aplicación es únicamente para entidades autorizadas, pues no podemos avanzar, una pena, no contamos con datos que verificar.

Aplicación de descarga de ficheros para entidades
Tras un rápido análisis, averiguamos que la aplicación está programada en .NET, por lo que esperamos que pueda ser decompilada, y así acceder a su código fuente, y ver como funciona internamente, qué hace, etc. Utilizamos una herramienta gratuíta para decompilar programas en .NET, .NET Reflector:

Decompilado de la aplicación mediante .NET Reflector
¡Bingo!¡Ya tenemos el código fuente de la aplicación! Se enumeran los métodos, funciones y procedimientos de consulta y gestión de ficheros...


Así como una librería dedicada a interactuar con un servidor FTP...del que para nuestra suerte, se incluyen los datos de conexión y acceso con usuario y contraseña...

Credenciales de acceso al servidor FTP del servicio
Dentro del FTP, se observan ficheros .zip cuyos nombres incluyen un CIF, seguramente de las entidades que han generado el fichero.

Ficheros generados anteriormente por entidades autorizadas
Nuestra prueba de ejecución de exportar_01.asp anterior, tras introducir un 1 como valor del parámetro empresa, corresponderá con el fichero SLRE00100 seguramente....


Pero recordando lo realizado hasta ahora, y tras la experiencia con el servicioempresas_00 y su 01,02,03,04...¿y si utilizamos la misma técnica para el fichero exportar_01.asp? Probemos con el siguiente número _02, accediendo a exportar_02.asp a ver como responde el servidor:


En principio parece que existe tal funcionalidad...y está ejecutando de nuevo una tarea...


Cuando finaliza, en el servidor FTP aparece un nuevo fichero .txt de un tamaño considerable para ser sólo texto y el mismo nombre pero un fichero comprimido en .zip, dentro del .zip, un fichero llamado Extructura.txt y el txt que también se encuentra en el FTP, que ocupa mucho...¿qué es esto?

FTP tras ejecutar la funcionalidad exportar_02.asp
Contenido del fichero Estructura.txt que enumera el formato del fichero descargado

Le diré a mi familiar que mejor acuda a una oficina del consumidor, y que quizás sea conveniente que no se registre de momento en este servicio.
Anónimo
-------------------------------------------- 

12 comments :

Anónimo dijo...

Esto no es nada chachipi....
Por cierto, enhorabuena por la clasificación en los Premios Bitácoras, por contribuciones como éstas y el trabajo que hacéis, os merecéis todo el reconocimiento del mundo :)

Miguel dijo...

una buena historia por la mañana siempre se agradece!

quizás podriais incluir esto en la lista de "hackeos memorables"

RoBe! dijo...

Muy bueno.

Víctor dijo...

Muy bueno. Espero que no te dé por llamarme a mi casa para venderme un colchón...

Wasesores

Enrique Blanco dijo...

Muy buen post.
Vaya desarrollo amateur...
¿no hacen auditorias de seguridad en algo que precisamente trata de datos personales?
Ya se de dos organismos de los que no hay que fiarse.

r0xSoFT dijo...

Han cambiado el sistema de captcha... jaja. Ahora utilizan imagenes "separadas", pero en la terminación del img src, en el penultimo caracter está la letra del captcha que es... xDD

Anónimo dijo...

r0xSoFT no lo han cambiado, siempre ha habido esa otra alternativa además del input hidden :-)

Anónimo dijo...

Muy bueno y bien explicado el articulo, y es que si se pone uno a mirar: tiene mas huecos que un colador:

http://bit.ly/aGMbgi

http://bit.ly/cSCW5Q

https://www.listarobinson.es/formulario_01.asp?tipo=1

WTF!!!!


Aleks

Anónimo dijo...

Joer y ahora ¿cómo elimino mis datos no sólo de la Lista Robinson sino de todos los ficheros que han vendido -sin mi conocimiento- por ahí ?

VAZQUEZ ABOGADOS dijo...

Vazquez Abogados esta estudiando iniciar acciones legales para los afectados de la LISTA ROBINSON, nos parece inconcebible lo que ha sucedido y sus responsables deben responder, incluido la posibilidad de exigir posibles indemnizaciones.
Mas info:
http://www.vazquezabogados.es/abogadosmalaga/lista-robinson-cientos-de-datos-de-ciudadanos-al-descubierto/

Adama dijo...

Para flipar... y yo que me apunté como un iluso cuando salió... :?

BTW... Lo que sí que me funcionó es la página para dejar de recibir publicidad de movistar para los que lo tengan.

https://www.protecciondatos.movistar.es/ejdo_servletHome?accion=home

Me tardó un mes más o menos en dejar de recibir los mensajes pero desde entonces...

Ernesto Arroyo dijo...

A Vazquez Abogados sólo comentarle que la AGPD le meterá el correspondiente puro (aka "impuesto encubierto") pero que la cosa se quedará ahí. Siempre es así