DOM XSS in jQuery selector sink using a hashchange event writeup

Descripción

This lab contains a DOM-based cross-site scripting vulnerability on the home page. It uses jQuery’s $() selector function to auto-scroll to a given post, whose title is passed via the location.hash property.

To solve the lab, deliver an exploit to the victim that calls the print() function in their browser.

DOM XSS in jQuery selector sink using a hashchange event writeup

Al entrar al laboratorio encontramos un blog online:

Explorando la página web con Ctrl + U o Click derecho ->Ver código fuente de la página, encontraremos el siguiente script vulnerable:

Lo que realiza es lo siguiente:

  1. Define una función que funcionará únicamente cuando cambia en la URL el valor que prosigue al ‘#’
  2. Le quita el ‘#’ a la cadena, la decodifica de URL a texto, y busca esa cadena en todos los h2 de los elementos ‘section’ que tienen la clase ‘blog-list’.
  3. Si el post existe, hace scroll a él.

Este script utiliza una versión vulnerable de jQuery, la cual no sólo nos permite movernos al post, sino también insertar HTML a él.

Para ello realizaremos el siguiente HTML:

<iframe src="https://0af4001d03c6230c800b1764006f0039.web-security-academy.net/#" onload="this.src += '<img src=1 onerror=print()>'">
</iframe>

Notas:

Entramos en ‘Go to exploit server’ y enviamos el script:

Al presionar en ‘Deliver exploit to victim’ se completará el laboratorio:

Deja una respuesta

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