¿Qué es el XSS DOM?

Autor: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Qué es el XSS DOM y en qué se diferencia de otros tipos de cross-site scripting?

Actualmente, el hacking ético de aplicaciones web es una de las prácticas más típicas de la ciberseguridad, debido a su alta demanda en compañías y organizaciones. Esta actividad se basa en replicar las técnicas de un hacker malicioso para poner a prueba la seguridad de la aplicación.

¿Qué es cross-site scripting?

Para ejecutar un test de penetración web, una de las principales guías es la lista de OWASP Top 10, que contiene los diez ciberataques más comunes contra páginas web. Con este ranking, podrás descubrir cuáles son las vulnerabilidades web más atacadas y, por ende, cuáles debes comenzar buscando al realizar un pentest.

El cross-site scripting o XSS es un tipo de ciberataque web que ocupa en el tercer lugar de la lista de OWASP Top 10. El XSS permite ejecutar código JavaScript malicioso en el navegador de una víctima, por medio de la explotación de vulnerabilidades de una página web. No obstante, existen diferentes tipos de XSS, como veremos más adelante.

En este post, hablaremos sobre un tipo de cross-site scripting que se basa en las modificaciones que puede hacer un usuario desde el frontend del código fuente de la página. A continuación, te explicaremos qué es el XSS DOM y por qué es peligroso para los usuarios de una aplicación web.

¿Qué es el XSS DOM?

Antes de aprender qué es el XSS DOM, es necesario contar con una noción básica sobre qué es DOM.

El DOM o Document Object Model es una interfaz de programación de aplicaciones (API) que permite leer, acceder y modificar el frontend del código fuente de una aplicación web. El DOM representa archivos XML o HTML en una estructura de árbol, basada en la jerarquía de los objetos que componen la página web.

🔴 ¿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 semana

El XSS DOM o basado en DOM es aquel que se realiza inyectando comandos de JavaScript en el DOM de una página web. Una aplicación web vulnerable permite ejecutar código malicioso desde su frontend, debido a una falta de validación de los inputs de un usuario.

Todas las aplicaciones pueden ser representadas por medio de un DOM, al cual se puede acceder por medio de la versión para desarrolladores de la app, que puede ser vista a través de cualquier navegador. Al igual que en el XSS reflejado, el payload de un ataque con XSS DOM puede incrustarse en la dirección URL del sitio. Sin embargo, el fallo de seguridad para este tipo de XSS se halla específicamente en el DOM.

Otros tipos de XSS

Ya hemos visto qué es el XSS DOM. Ahora, para entender en qué se diferencia de otros tipos de XSS, explicaremos de qué tratan estas alternativas.

XSS reflejado

El XSS reflejado se produce cuando una página web permite, por error, ejecutar código JavaScript por medio de la introducción de datos en una de sus entradas. Este código malicioso, además de poderse inyectar de este modo en el navegador, también se puede incrustar directamente en la URL de la página. Entonces, el enlace puede ser enviado hacia sus víctimas como método de propagación.

Por medio del código JavaScript inyectado en el navegador de la víctima es posible:

  • Obtener su token de sesión de la página.
  • Robar datos financieros.
  • Redireccionar a sitios maliciosos.

XSS persistente

El XSS persistente, a diferencia del reflejado, afecta a todos los usuarios que visiten una página. Es decir, no depende de que se modifique una URL y se le envíe a una persona. En el caso del XSS persistente, no hace falta interactuar con la víctima, lo cual hace que sea un ciberataque más peligroso.

El XSS persistente se basa en ejecutar código malicioso en la aplicación por medio de datos que quedan almacenados en la página. El mejor ejemplo de entradas vulnerables para estos ataques son las secciones de comentarios. Si los inputs de los usuarios en estas secciones no se validan correctamente, permiten ejecutar código JavaScript en el navegador de todos los que visiten el sitio modificado por el atacante.

¿Cómo aprender más?

Ahora sabes qué es el XSS DOM y en qué se diferencia de otros tipos de cross-site scripting. Si quieres aprender más sobre hacking web, en KeepCoding tenemos el curso ideal para ti, con el que podrás especializarte en pocos meses. Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y conviértete en un profesional de la seguridad informática. ¡No sigas esperando e impulsa tus sueños ahora!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado