XSS basado en DOM

XSS basado en DOM – Codelivly

 

Cross-Site Scripting (XSS) basado en DOM es un tipo de ataque de cross-site scripting causado por la aplicación web que genera dinámicamente contenido de página web a través de la manipulación del Modelo de objetos de documento (DOM).

En los ataques XSS basados ​​en DOM, el atacante inyecta un script malicioso en una página web manipulando el entorno DOM. Luego, la aplicación web ejecuta el script en el navegador del usuario, lo que permite al atacante robar datos confidenciales o realizar otras acciones maliciosas en nombre del usuario.

Este tipo de ataque suele ser difícil de detectar con los métodos de detección XSS tradicionales porque el script malicioso se inyecta y ejecuta completamente en el lado del cliente. Además, el script se puede entregar en la URL, solicitud HTTP o cualquier otro campo de entrada proporcionado por el usuario en la página web.

Ejemplo

Supongamos que se utiliza el siguiente código para crear un formulario que permita al usuario elegir su idioma preferido. También se proporciona un idioma predeterminado en la cadena de consulta, como el parámetro "predeterminado".

…

Select your language:

<select><script>

document.write("<OPTION value=1>"+decodeURIComponent(document.location.href.substring(document.location.href.indexOf("default=")+8))+"</OPTION>");

document.write("<OPTION value=2>English</OPTION>");

</script></select>
…

La página se invoca con una URL como:

http://www.some.site/page.html?default=French

Se puede lograr un ataque XSS basado en DOM contra esta página enviando la siguiente URL a una víctima:

http://www.some.site/page.html?default=<script>alert(document.cookie)</script>

Cuando la víctima hace clic en este enlace, el navegador envía una solicitud de:

/page.html?default=<script>alert(document.cookie)</script>

en www.un.site. El servidor responde con la página que contiene el código Javascript anterior. El navegador crea un objeto DOM para la página, donde el objeto document.location contiene la cadena:

http://www.some.site/page.html?default=<script>alert(document.cookie)</script>

El Javascript original en la página no espera que el predeterminado contenga el marcado HTML y, como tal, simplemente lo decodifica y lo devuelve en la página (DOM) en tiempo de ejecución. Luego, el navegador muestra la página resultante y ejecuta el script del atacante:

alert(document.cookie)

Tenga en cuenta que la respuesta HTTP enviada por el servidor no contiene la carga útil del atacante. Esta carga útil se manifiesta en el script del lado del cliente en tiempo de ejecución, cuando un script defectuoso accede a la variable DOM document.location y asume que no es malicioso. Además, la mayoría de los navegadores codifican la URL de ubicación de documento de forma predeterminada, lo que reduce el impacto o la posibilidad de muchos ataques DOM XSS.

Índice
  1. Ejemplo
  • Técnicas avanzadas y derivados
    1. Herramientas y técnicas de prueba
    2. tecnicas de defensa
  • Técnicas avanzadas y derivados

    Las técnicas avanzadas y los derivados se refieren a instrumentos financieros complejos que se utilizan para gestionar el riesgo financiero o para especular sobre los movimientos del mercado. Estos instrumentos generalmente se negocian en mercados financieros especializados y están diseñados para cumplir objetivos de inversión específicos.

    Aquí hay algunas técnicas avanzadas y derivados comunes:

    1. Opciones: Una opción es un contrato que otorga al comprador el derecho, pero no la obligación, de comprar o vender un activo subyacente a un precio específico en una fecha específica o antes.
    2. Futuros: Un contrato de futuros es un acuerdo entre dos partes para comprar o vender un activo a un precio específico en una fecha específica en el futuro.
    3. Swaps: Un swap es un contrato entre dos partes para intercambiar flujos de efectivo basados ​​en diferentes instrumentos financieros o índices.
    4. Swaps de incumplimiento crediticio: un swap de incumplimiento crediticio (CDS) es un contrato entre dos partes en el que una de las partes acuerda indemnizar a la otra si ocurre un evento crediticio específico, como incumplimiento o quiebra.
    5. Títulos de deuda garantizados: un título de deuda garantizado (CDO) es un tipo de título respaldado por una cartera de títulos de deuda, como hipotecas o bonos corporativos.
    6. Productos estructurados: Los productos estructurados son instrumentos financieros complejos que se crean combinando uno o más valores tradicionales, como acciones o bonos, con derivados.
    7. Fondos de cobertura: un fondo de cobertura es un fondo de inversión privado que utiliza técnicas avanzadas y derivados para generar rendimientos para sus inversores.

    Aunque se pueden utilizar técnicas y derivados avanzados para gestionar el riesgo financiero y lograr objetivos de inversión específicos, también pueden ser complejos y arriesgados. Los inversores deben evaluar cuidadosamente los posibles riesgos y beneficios de estos instrumentos antes de invertir. Además, las reglamentaciones y los requisitos de información pueden variar de una jurisdicción a otra, por lo que es importante que los inversores busquen asesoramiento profesional al considerar este tipo de inversiones.

    Herramientas y técnicas de prueba

    1. El DOM XSS Wiki: el comienzo de una base de conocimiento para definir fuentes de entradas y sumideros controlados por atacantes que potencialmente podrían introducir problemas de XSS basados ​​en DOM. Es muy inmaduro a partir del 17/11/2011. ¡Contribuya a este wiki si conoce sumideros más peligrosos y/o alternativas seguras!

    Ver: http://code.google.com/p/domxsswiki/

    2. DOM Snitch: una extensión experimental de Chrome que ayuda a los desarrolladores y evaluadores a identificar prácticas inseguras que se encuentran comúnmente en el código del lado del cliente. De Google.

    Ver: http://code.google.com/p/domsnitch/

    tecnicas de defensa

    Ver: https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html

    Si quieres conocer otros artículos parecidos a XSS basado en DOM puedes visitar la categoría Tutoriales.

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas