1 - DOM XSS using web messages

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

El código que has compartido añade un event listener al objeto window para escuchar el evento 'message'. Este evento se dispara cuando se recibe un mensaje desde otra ventana, un iframe, o un script en otro dominio (usando la API postMessage).

Desglose del código:

  1. window.addEventListener('message', function(e) { ... }):

  2. function(e) { ... }:

  3. document.getElementById('ads').innerHTML = e.data;:

El siguiente código envía un post message, como la página está escuchando lo incrustará en ads sin sanitización y si filtrado de urls origen

`

El código que has compartido intenta explotar una vulnerabilidad de tipo Cross-Site Scripting (XSS) utilizando un iframe que carga una URL externa y envía un mensaje malicioso mediante la API postMessage. Aquí está el desglose de lo que está haciendo:

Explicación del Código:

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

  2. onload="this.contentWindow.postMessage(...)":

  3. El Payload:

Condiciones para la Explotación:

Riesgos:

Si el sitio vulnerable no valida correctamente los mensajes que recibe a través de postMessage, este código podría resultar en la ejecución de scripts arbitrarios, lo que llevaría a un ataque de Cross-Site Scripting (XSS).

Prevención: