Cross site scripting (XSS) es una de las vulnerabilidades más comunes
hoy día de los sitios web, y también es una de las que menos atención
se le presta, pese a que puede tener importantes implicaciones para
la seguridad del cliente. En esta ocasión se demuestra como a través
de XSS es posible burlar la protección antivirus que ofrece Hotmail.

El ataque típico de Cross site scripting (XSS) suele llevarse a cabo
a través de un enlace que apunta a un servidor web afectado. La URL
se construye de forma especial para que incluya un script del atacante
que será transmitido por el servidor afectado al cliente que utilice
el enlace para visitar el web.

Dado por ejemplo un sitio web que permite realizar búsquedas:

http://sitio/busqueda.asp?busca=texto

El XSS podría darse a través de una URL tipo:

http://sitio/busqueda.asp?busca=<script_del_atacante>

Las posibilidades de ataque a través de XSS son varias, las más
comunes suelen ser la captura de cookies e identificadores, que
permiten capturar sesiones y suplantar la identidad de los afectados,
o la modificación de contenidos para engañar al visitante víctima
del XSS, con la posibilidad de construir formularios para robar
datos sensibles, como contraseñas, datos bancarios, etc.


Hotmail y archivos adjuntos

El sistema de descarga de archivos adjuntos de Hotmail se lleva a
cabo a través de una URL donde se pasan como parámetros, entre otros,
el identificador del usuario y del mensaje. En esa misma URL se
encuentra al final un parámetro (vscan) que de forma evidente es el
que da la orden para que en el momento de la descarga por parte del
usuario se realice el análisis del antivirus.

La URL de descarga de adjuntos tiene un aspecto como el siguiente:

http://by7fd.bay7.hotmail.msn.com/cg...ox=F000000001&
a=[id_del_usuario]&msg=[id_del_mensaje]&start=XXXXXX&len=XXXX&
mimepart=4&vscan=scan

El exploit de infohacking está basado en un XSS presente en Hotmail
a través de los archivos adjuntos mediante el cual consigue tener
acceso al identificador del usuario y del mensaje. Gracias a estos
datos que puede conseguir a través del XSS, construye una URL de
descarga donde omite el parámetro del antivirus.

El resultado es que el atacante puede enviar adjunto un archivo .htm
que contiene el exploit XSS y un segundo archivo con un virus. La
víctima, al abrir el primer adjunto .htm, provoca la redirección a
la nueva URL construida que descarga el segundo archivo adjunto
infectado (el virus) sin pasar por el análisis del antivirus de
Hotmail.

El exploit de infohacking es una prueba de concepto que puede no
reproducirse en todas las circunstancias. Principalmente se debe
al uso de referencias absolutas (slice) para delimitar la cadena
principal desde donde extrae los parámetros e identificadores. Una
pequeña variación para recoger esta cadena de forma más dinámica
según separadores (split) puede hacer más portable el exploit, sin
depender de la longitud exacta de la URL según varíe el servidor
o la longitud de los parámetros.