Descripción

This lab demonstrates a simple web message vulnerability. To solve this lab, use the exploit server to post a message to the target site that causes the print() function to be called.

DOM XSS using web messages writeup

Al entrar al laboratorio y examinar su código fuente con Ctrl + U o Click derecho ->Ver código fuente de la página, veremos el siguiente script:

                <script>
                    window.addEventListener('message', function(e) {
                        document.getElementById('ads').innerHTML = e.data;
                    })
                </script>

Usaremos este ‘addEventListener’ para inyectar un elemento ‘<img>’ que lleve JavaScript encargado de ejecutar la función ‘print()’ en la víctima. Para ello nos vamos a ‘Go to exploit server’ e introducimos el siguiente código en el ‘Body’:

<iframe src="https://0a1200730319d011806b71df00340096.web-security-academy.net/" onload="this.contentWindow.postMessage('<img src=1 onerror=print()>','*')">

Nota: Dado que esta vez no hay ninguna protección, no tendremos que usar ‘onresize’. Podemos hacerlo directamente.

Este código carga la página del laboratorio y le dice al ‘addEventListener’ que cargue una foto con una URL rota (src). Cuando la foto se cargue y no funcione, el navegador usará la función que hay definida en ‘onerror’, encargada de ejecutar el print().

El »*» es el segundo argumento de la función postMessage. Le dice a esta que envíe el mensaje (la foto con el XSS) a cualquier dominio sin restricciones.

Al pulsar ‘Deliver exploit to victim’ habremos completado el laboratorio

Deja una respuesta

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