Cuando empece a trabajar como pentester siempre me imagine que esto ya estaba casi resuelto y las vulnerabilidades que me encontraria serían super complejas PEEEEROOOOO les puedo decir que en casi todos nuestros clientes encontramamos al menos unos de estos. XSS es una de las vulnerabilidades más viejas que se siguen encontrando 1996-1998. En ese entonces ya era posible injectar código cruzando (crossing) a la otra aplicación.

Es importante aclarar que es un ataque al usuario y por eso muchas veces los porgramadores no lo toman tan enserio. Otro problema es que es más dificil explicarlo/entenderlo que otras vulnerabildiades famosas como SQL injection.

Incluso a google le paso hace poco (ver abajo) y a Britihs airlines y a ticketmaster

Para explicar la vulnerabilidad, digamos que un página web te deja poner tu nombre sin ningun filtro (osea que puedes poner lo que quieras) y lo usa como parametro, es decir, nuestro imput es el output de la página:

http://websitenoseguro.com/hola.php?nombre=LoQueTuQuieras
---
#la Pagina va a imprimir 
<h3> Hola LoQueTuQuieras </h3>
....

Entonces un hacker podríasimplemente injectar código.

http://websitenoseguro.com/hola.php?nombre=</h3><script>alert('Te estoy hackeando con XSS')</script>
---
#la Pagina va a imprimir 
<h3> </h3><script>alert<'Te estoy hackeando con XSS'></script> </h3>
....

Que al final ejecutaría el ataque.

Ok, podemos hacer alertas, pero que más se puede hacer?

  1. Robar cookies (sesiones).
  2. Capturar todo lo que escriben.
  3. Defacement
  4. Phishing/Malware
  5. XSS worms
  6. Controlar el browser con mi pineaple esta en mi lista de cosas por hacer 🙂