www.icann.org DOM XSS via widget Picture Mosaics (postMessage origin bypass)Pesquisa de segurança / divulgação responsável. Página hospedada numa origem que satisfaz o check quebrado do widget. O XSS executa na origem www.icann.org (o mosaicEmbed.js roda na página do cliente).
// mosaicEmbed.js (incluido em www.icann.org/icann-photo-mosaic)
function pmReceiveMessage(event){
if (event.origin.indexOf("picturemosaics.com") >= 0 || ...) { // <- substring match (quebrado)
... else if (event.data.indexOf("launchWaldo") >= 0)
openWaldoFlow(event.data.split("-")[1]); // data do atacante
}
}
function openWaldoFlow(data){ createModal({ source:"html",
content:'<iframe ... src="https://livemosaics.com/upload/waldo/'+data+'"></iframe>' }); }
function createModal(c){ if(c.source=="html")
document.getElementById("pmos-iframeWrapper").innerHTML = c.content; } // <- innerHTML(atacante)