DOM XSS in innerHTML sink using source location.search

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:

  1. Toma de la URL el valor del parámetro ‘search’ y lo almacena en la variable ‘query’.
  2. Si este parámetro está definido, llama a la función ‘doSearchQuery’ con la query como parámetro.
  3. 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.

Deja una respuesta

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