Crellan es uno de tantos juegos de navegador que hay por ahí (como el famoso Ogame). ¿Por qué hablo de él? Sencillo, porque salió en los resultados de google con una url bastante “sospechosa”.
La url era “http://www.crellan.com/external.php?url=” y es una medida de protección. Si algún usuario escribe un enlace a otra web, crellan avisa de que se va a abandonar crellan y se entrará en otra web. De hecho dicen que NO hagas clic en el enlace a menos que sepas que es seguro.
El caso es que si entramos en esa dirección con el parámetro “url” vacío, el código que se genera es:
<a href='http://' />http://</a>
Una petición “normal” sería del estilo:
http://www.crellan.com/external.php?url=http://www.google.com
Que generaría el código:
http://www.google.com
Ahora supongamos que queremos hacer que la gente llegue a esa dirección (google.com) sin necesidad de hacer click en el enlace, ¿qué se os ocurre? Una opción es hacer uso de “onmouseover”.
Onmouseover se ejecutará cuando (no lo adivinaríais nunca) el ratón se pone encima del enlace. En este caso yo he hecho que se muestre una ventana avisando y luego se envíe a la persona a la web, sin que tenga que hacer click:
http://www.crellan.com/external.php?url=http://www.google.com' onmouseover='javascript:alert("Y sin hacer click!");window.location="http://www.google.com"
Que genera el código:
http://www.google.com' onmouseover='javascript:alert("Y sin hacer click!");window.location="http://www.google.com"
Y por tanto se nos muestra una ventana diciendo “Y sin hacer click!” y se nos redirige a google.com.
¿Qué podemos aprender de todo esto? Bueno, lo primero es que si hacemos un sitio web y el cliente nos envía lo que “suponemos” es una url, deberíamos comprobar que realmente es una url. Por cutre que sea el sistema de parseo de urls que usemos, salta a la vista que lo que yo he introducido no es una url válida.
El problema de esta aplicación es que se basa en “eliminar” de la url las cosas “malas”, pero no verifica que la url sea válida. En esa lista de “cosas malas” no figura el carácter ‘, así que nos ha sido posible saltarnos su protección.
Lección: Verificad los datos que llegan de los clientes.
That’s more than senibsle! That’s a great post!
you don't respect the President of the US and so what if you don't? Is that now a crime?I don't think so YET. Your name is familiar but I can not place where I have heard or read it, can you help me out with that? How is your voice blasted all over the country and how are they trying to blast you all over the world? Can you be more specific?