Esta página recibe información de una fuente que no es de confianza y la publica directamente en el navegador como HTML.
En este caso, la fuente no confiable es window.name . Para el programador inexperto, esto puede parecer inofensivo, pero en realidad, se puede establecer en cualquier valor arbitrario, porque se deriva del nombre del marco:
<iframe
src="http://www.domxss.com/domxss/01_Basics/05_jquery_html.html?681973661#message"name="<script>alert(0)</script>"
></iframe>
En el código que has dado, hay otro agujero deslumbrante: el selector también se toma de una fuente no confiable (la URL), que permite a los atacantes mostrar el HTML en cualquier lugar que deseen. No es necesario que sea un marco, solo visite la siguiente URL:
http://www.domxss.com/domxss/01_Basics/05_jquery_html.html?681973661#whatever],body,[whatever
t se establece en "whatever],body,[whatever" (de location.hash ), y se usa para construir un selector jQuery ( "div[id="+t+"]" ). Juntos, dan como resultado un selector que selecciona (por ejemplo) el elemento <body> :
"div[id=whatever],body,[whatever]"
Aunque no es tan dañino como window.name , podría valer la pena arreglarlo.