¿Sabes cuáles son los distintos tipos de XSS que existen, en qué se diferencian y cómo pueden afectar a una aplicación web?
El hacking a aplicaciones web es uno de los más comunes. Por eso, las auditorías de seguridad web son algunos de los servicios más demandados de la ciberseguridad. Para aprender hacer un test de intrusión a una página web, es necesario conocer las principales modalidades de ataque que utilizan los hackers maliciosos.
En la lista de OWASP Top 10 se encuentran los principales ciberataques utilizados en contra de aplicaciones web. Este ranking, que se actualiza periódicamente, puede servir como guía para un test de penetración a una página web. Por ende, todos los pentesters deben conocer y aprender a ejecutar los ataques incluidos en esta lista.
En este post, hablaremos sobre el tercer ciberataque web más utilizado del mundo, según la lista de XSS attack OWASP Top 10. A continuación, te explicaremos qué es el coss-site scripting o XSS y cuáles son los 3 tipos de XSS que existen.
3 tipos de XSS
El cross-site scripting o XSS es un ciberataque en el que se ejecuta código malicioso en el navegador de una víctima por medio de un sitio web vulnerable. Ahora bien, este ataque puede lograrse de diferentes modos, que dependen del tipo de vulnerabilidad que se encuentre en la página web. Es decir, según el fallo que presente la aplicación, se pueden ejecutar diferentes tipos de XSS:
- XSS reflejado.
- XSS persistente.
- XSS DOM.
XSS reflejado
El ataque cross site scripting reflejado es uno de los xss tipos que permite ejecutar código malicioso en el navegador de la víctima por medio de una URL o un enlace. Las vulnerabilidades que permiten ejecutar un XSS reflejado suelen encontrarse en campos a rellenar en las páginas, cuyo valor se imprime en pantalla. Es decir, por ejemplo, una función de una página web que permita ingresar el nombre de un cliente y, luego, lo imprima en pantalla en la forma: “Hola, nombre”.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaNormalmente, estos campos permiten inyectar código JavaScript en el navegador por medio de la URL del sitio, ya que el código se puede incrustar directamente en ella. Entonces, esta vulnerabilidad puede usarla un hacker para enviarle una URL alterada a una víctima y ejecutar cualquier código en su navegador al abrirla.
El XSS reflejado puede usarse para:
- Robo de cookies o tokens de sesión.
- Exfiltración de datos y credenciales.
- Web defacement.
XSS persistente
Uno de los tipos de XSS más utilizados es el cross-site scripting persistente. A diferencia del reflejado, este ataque no se realiza por medio de una URL personalizada. Es decir, no afecta solamente al usuario que abre una sesión con la página por medio de un link con código incrustado. Por el contrario, el XSS persistente permite hacer ejecución de código en el navegador de todos aquellos que visiten la página web vulnerable.
El cross-site scripting persistente se hace por medio de entradas que permiten ejecutar código, y que se quedan almacenadas en las bases de datos del sitio web. El mejor ejemplo para este tipo de entradas de datos son las secciones de comentarios. Allí, de haber una vulnerabilidad XSS, los usuarios podrían incluir comentarios con código JavaScript malicioso y afectar a todo aquel que abra el sitio.
XSS DOM
El XSS DOM o XSS basado en DOM es uno que no se encuentra ni incrustado en la URL ni almacenado en las bases de datos de una página web. Es decir, no es un tipo de cross-site scripting reflejado ni persistente.
El DOM o Document Object Manager es una API (Interfaz de Programación de Aplicaciones) que permite representar el contenido de un documento XML o HTML en una estructura de árbol jerárquico. El DOM funciona con cualquier lenguaje de programación, pero se utiliza, sobre todo, con JavaScript. Sirve para leer, acceder y modificar fácilmente el contenido de una página web desde el lado del cliente.
Si no hay una regulación suficiente de los inputs del usuario, este puede ejecutar código en el navegador por medio del DOM de un sitio web. Dado que el DOM se ejecuta en memoria, permite ejecutar código malicioso sin recurrir a los dos métodos mencionados previamente.
El código malicioso en un XSS basado en DOM también puede incrustarse en la URL y enviársele a una víctima. No obstante, la vulnerabilidad se encuentra en el DOM de la página y no en una de sus entradas de datos, como en el caso del XSS reflejado.
Ya sabes cuáles son los 3 tipos de XSS y cómo se diferencian entre sí. Si quieres aprender más sobre ellos y cómo ejecutarlos, en KeepCoding tenemos el curso intensivo perfecto para ti. Accede a nuestro Ciberseguridad Full Stack Bootcamp y descubre cómo convertirte en especialista en solo 7 meses. ¡No sigas esperando y pide información para cambiar tu futuro ahora!