jueves, 31 de enero de 2013

Cómo no se deben hacer las cosas (1): Barato lo llevo, oigaaa

Cuando uno se pone a mirar, a veces ve cosas llamativas. Algunas de ellas son tan típicas, tan... paradigmáticas, que creo que podrían servir de ejemplo para todo el mundo. Y hace unos días me encontré con una de ellas.

No sé cómo, pero me encontré intentando ver si el MIT (Massachusetts Institute of Technology) vendía software barato. Quizá parezca que soy raro, pero mis razones tenía. Así que fui a Google y puse:

 site:mit.edu "cheap autocad"



 Me salieron unos cuantos resultados. Así que, por probar, hice clic en el primero de ellos y...



 Como se puede ver en la imagen, no terminé en el MIT. En su lugar, fui redirigido a una página muuuuuuy rarita. ¿Que cómo? Pues, analizando la respuesta del servidor, me encontré con las siguientes cabeceras HTTP:



Status=Moved Temporarily - 302
Date=Tue, 29 Jan 2013 16:02:09 GMT
Server=Apache
P3P=CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Content-Encoding=gzip
Vary=Accept-Encoding
Location=http://uzsrodghwira.jet-software.net/browse/search/?q=autocad+architecture
Scripts-IP=18.181.0.46
Keep-Alive=timeout=15, max=1000
Connection=Keep-Alive
Transfer-Encoding=chunked
Content-Type=text/html


Bueno, una redirección HTTP 302, "Movido Temporalmente" a un sitio extraño. OK, ese servidor hacía cosas bastante extravagantes. Pero había más.

Por lo visto hasta ahora, a esa web del MIT le han calzado uno del 48. Alguien se les había colado y les había metido cosas feas. Pero supongamos que yo me doy cuenta y aviso al administrador del sitio. Supongamos que le envío un correo y le digo que la dirección http://ceer.mit.edu/?sc=7222 lleva a una tienda posiblemente ilegal de software.

Y supongamos que quien recibe mi mensaje prueba y pone en la barra de direcciones de su navegador la URL que le doy. Entonces, le aparacerá esto:





¡Ahora resulta que esa URL lleva a la página principal del sitio! El administrador posiblemente pensará "¡qué poca gracia tenía esta broma!" o "¡la gente ya no sabe ni lo que visita!" y se olvidará del tema.

En esta ocasión, las cabeceras HTTP de la respuesta indican que también ha existido redirección, pero no a otra web:


Status=Moved Temporarily - 302
Date=Tue, 29 Jan 2013 16:06:20 GMT
Server=Apache
P3P=CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Content-Encoding=gzip
Vary=Accept-Encoding
Set-Cookie=8519503dbe949327cf1a7a153cc6f9ec=d0d26ddbbc41fd742852af53c3852a28; path=/
Location=/
Scripts-IP=18.181.0.46
Keep-Alive=timeout=15, max=1000
Connection=Keep-Alive
Transfer-Encoding=chunked
Content-Type=text/html


Simpático ¿verdad? El tipo maluto tenía su truco. Su "regalo" mira las cabeceras HTTP de las peticiones y, en particular, la del "Referer". Cuando uno sigue un enlace, el sitio web de destino recibe en esta cabecera la URL del documento desde el que surgió la petición. Y el script malicioso, sabiendo esto, unicamente redirige al visitante a su "tienda" cuando aquel viene desde Google, o quizá también desde algunos otros buscadores.

Pero había más. Porque en la primera imagen se puede ver cómo percibe Google el documento de la URL que nos trae de cabeza. Y no se parece ni a la tienda ni a la página de inicio del sitio. Google ve otra cosa diferente. Quizá tenga que ver con la cabecera HTTP "User-Agent", que identifica al navegador con el que se realizan las peticiones. Muchas veces, así ocurre.

Google tiene un programilla llamado "GoogleBot" con el que va rastreando páginas web. Y tiene su propio "User-Agent". Podemos saber cuál es consultando la versión en cache de Google de algunas páginas de esas de "mira qué User-Agent tienes". Probando con una de ellas:


¡Ahí está! Ahora, cogiendo el Firefox con la extensión "Tamper Data" podemos volver a pedir nuestra página camaleónica y cambiar el valor del User-Agent para utilizar el de GoogleBot.


... Y ¡Bingo! La tercera versión de la página:


Así, que esta gente le da a cada uno lo que busca. En este caso, a Google, un galimatías de palabras pero que tienen varias veces eso de "cheap" y algunos nombres de programas

 ¡Con tal de hacer caja!

Por supuesto, quise notificar todo esto al webmaster del sitio. Pero...
(continuará)








No hay comentarios:

Publicar un comentario