Hemos llegado a una de las vulnerabilidades más conocidas y explotadas, y que a pesar de ello, persiste su existencia en muchas aplicaciones web… La vulnerabilidad XSS se presenta cuando un atacante logra inyectar código HTML y/o javascript en una aplicación que no realiza una adecuada validación de los datos de entrada.
El código de un ataque XSS es ejecutado cuando la víctima visita el sitio vulnerado.
- Reflejado.- Es cuando el atacante envía un link ya con el código incrustado, mismo que será ejecutado una vez que la víctima abra el link. Para que esto funcione, se utiliza un poco de ingeniería social, quizás acortadores de URLs para engañar más fácilmente a la víctima.
- Persistente.- Es cuando el atacante puede plantar un script persistente en una página web, así, cada persona que visite esa página, ejecutará el código en su navegador.
- De modelo de objetos de documento (DOM).- Para este tipo de XSS no se requieren peticiones HTTP, el script es directamente inyectado como un resultado de modificar el DOM del sitio web vulnerable, lo que hace que se ejecute del lado del cliente, es decir, en el navegador de la víctima.
- Comprometer una cuenta de usuario
- Obtener información del sitio web vulnerable
- Modificar el sitio web vulnerable (defacement)
- Redireccionar a las víctimas hacia sitios maliciosos
- Ejecutar algún tipo de malware en el equipo de la víctima
- usuario.- jsmith
- password.- demo1234
Lo que estamos haciendo aquí es, mediante «document.location«, redirigir a la víctima a una página que nosotros queramos, que es justamente lo que tenemos entre comillas dobles. El resultado será el siguiente:
Y si además de esto, convertimos este link en uno más corto para que nadie vea realmente hacia donde te dirige… Vamos a utilizar el servicio bit.ly para acortar la URL maliciosa que hemos creado.