
Descripción
This lab contains a DOM-based open-redirection vulnerability. To solve this lab, exploit this vulnerability and redirect the victim to the exploit server.
DOM-based open redirection writeup
Al entrar al laboratorio veremos un blog. En cualquiera de sus entradas, si examinamos su código fuente con Ctrl + U o Click derecho ->Ver código fuente de la página, veremos el siguiente enlace:
<a href='#' onclick='returnUrl = /url=(https?:\/\/.+)/.exec(location); location.href = returnUrl ? returnUrl[1] : "/"'>Back to Blog</a>
Su función es la siguiente:
- <a: Etiqueta de enlace en HTML.
- href=’#’: Destino del enalce, en el caso de ‘#’ es la propia página.
- onclick: Al hacer click se ejecuta el siguiente código JavaScript.
- returnUrl =: Define la variable returnURL.
- url=(https?:\/\/.+)/: Es una expresión regular que hace que lo que coincida con ella sea el valor de url. En este caso busca http o https (la ‘?’ hace a la s opcional), seguido de dos // (con \ \ para evitar su funcionalidad de carácter especial), seguido de un ‘.’ y todos los caracteres que haya (+).
- exec(location): Aplica la expresión regular a la URL del navegador (location).
- location.href = returnUrl ? returnUrl[1] : «/»: Si returnUrl no es nulo o vacío, se usará el enlace encontrado por la expresión regular para hacer una redireccción. Si es falso o vacío devolverá al usuario a la página inicial.
Entonces, para redirigir a la víctima al ‘Exploit server’, tendremos que proporcionar por parámetro una URL válida a ‘url’:
https://0a0000ae03070f1a8144113400dd00b3.web-security-academy.net/post?postId=9&url=https://exploit-0a6e005603990f2b8151100f017f0095.exploit-server.net/
Al entrar en la URL completaremos el laboratorio:
