
Descripción
This lab contains a DOM-based cross-site scripting vulnerability in the search blog functionality. It uses an innerHTML
assignment, which changes the HTML contents of a div
element, using data from location.search
.
To solve this lab, perform a cross-site scripting attack that calls the alert
function.
DOM XSS in document.write sink using source location.search writeup
Al entrar al laboratorio nos encontramos con un blog que permite realizar búsquedas:

Intentar colocar el script directamente no funcionará:

Al examinar cómo está hecha la página con Ctrl + U o Click derecho -> Ver código fuente de la página, la página, vemos el fragmento de código donde se está colocando nuestro script:

Este script realiza lo siguiente:
- Toma de la URL el valor del parámetro ‘search’ y lo almacena en la variable ‘query’.
- Si este parámetro está definido, llama a la función ‘doSearchQuery’ con la query como parámetro.
- La función busca el elemento HTML con el id ‘searchMessage’ y dentro de su HTML coloca nuestra query.
Con lo cual, tendremos que proporcionar un elemento HTML para poder introducir nuestro script, dado que la etiqueta <script> directamente usada como en el laboratorio anterior no dará resultado. En este caso será ‘<img src=»rutanoexistente» onerror=»alert(‘cyberhub.es’)»>’.
Esto creará en la página una imagen que, al no tener el atributo src bien correspondido con un archivo, lanzará el script de onerror:

Completando así el laboratorio.