sábado, 4 de diciembre de 2010

Haciendo XSS (Cross Site Scripting) para toda la familia

No, no me he equivocado al escribir las siglas XSS, ya sé que teóricamente a Cross Site Scripting le corresponde CSS, pero como CSS son las hojas de estilo en cascada (Cascading Style Sheets) pues quedó lo de XSS, que así con la X se diferencia y de paso queda mucho más hacker.
Os contaré un poco por encima en qué consiste el XSS. Pensad en estas webs que tienen un cuadro de búsqueda, y luego ponen un "resultados de búsqueda para: lo que tú has buscado". ¿Nunca se os ha pasado por la cabeza que lo que tú has buscado podría ser en realidad código. Código que vuestro explorador de internet favorito puede interpretar como legítimo y que ejecute y haga lo que tú quieres. Seguro que no, nadie es tan malpensado, ¿verdad?

Hay dos tipos de XSS:

  • Permanentes: Que prevalecen una vez hechos. Por ejemplo, nos registramos en un foro y en nuestro nick ponemos código, ese código es permanente y cada vez que alguien vea un post nuestro ejecutará nuestro maligno código (y emitimos una risa malévola)
  • No permanentes: Son los más comunes. Se ve la modificación en el momento que tú haces la modificación o si le pasas un link de la web modificado a alguien. Ejemplo: Realizas una búsqueda malintencionada en un link www.quetal.com/buscar.php, te llevan a una web del estilo www.quetal.com/buscar.php?busqueda='tu código' donde se ve la web con el XSS aplicado y tú le pasas ese enlace a alguien. Ese alguien ve la foto de David Hasselhoff en mitad de una web que antes era normal. Cuando tu compañero te pregunta que qué ha pasado, puedes también emitir otra risa malévola, creerte un superhacker y decirle "¿a que mola?".
Algunos diréis "Vale Uxío, para echar las risas está genial, pero aún no acabo de ver dónde está la gracia de esto". Echadle un poco de imaginación. Seguro que ya se os ocurrieron maldades: por ejemplo usar el XSS para redirigir el tráfico de una página a la nuestra, y así ganar visitas y "puntitos de indexación de google" (que a google le caigamos mejor) por haber venido de una página importante (Black SEO). Imaginaos una página web de un banco por ejemplo, con un XSS que hace que en vez de cargarse el formulario de login del banco se cree uno vuestro. La web del banco sería la verdadera, los certificados también, estamos ante un problema muy grande de seguridad. Está claro que no al nivel de SQL injection, del que ya hablaremos otro día, pero sí es algo a tener en cuenta.

Os dejo una web muy útil a la hora de estar jugando con XSS http://ha.ckers.org/xss.html

Procuré hacer el artículo sencillito y ameno, si véis algún error me comentáis. Nos vemos!

2 comentarios:

  1. Excelente la explicación sobre el XSS, los ejemplos bastante claros -sobre todos los de echar a volar la imaginación- y peligrosos para aquellas mentecillas desplegadas. Espero el de SQL injection.

    ResponderEliminar
  2. Es que SQL me da hasta miedo hacerlo, porque me parece uno de los agujeros más terribles que puede haber en una web. Pero lo haré, prometido.

    ResponderEliminar