(eller som det kallas i vissa texter, “type-0 XSS”) är en XSS-attack där attackens nyttolast utförs som ett resultat av att modifiera DOM “miljö” i offrets webbläsare som används av det ursprungliga klientsidans skript, så att klientsidans kod körs på ett “oväntat” sätt. Det vill säga själva sidan (HTTP-svaret som är) ändras inte, men klientsidans kod på sidan körs annorlunda på grund av de skadliga ändringar som har inträffat i DOM-miljön.
detta står i kontrast till andra XSS-attacker (lagrade eller reflekterade), varvid attackens nyttolast placeras på svarssidan (på grund av en serversidan).
VIDEO POC
HTML Escape sedan JavaScript Escape innan du sätter in otillförlitliga Data i HTML subtext inom exekverings sammanhang
exempel farliga HTML-metoder
attribut
element.innerHTML = “<HTML> taggar och markup”;
element.outerHTML = “< HTML> taggar och markup”;
metoder
dokument.skriv (“<HTML> taggar och markup”);
dokument.Writeln (“<HTML> taggar och markup”);
riktlinje
för att göra dynamiska uppdateringar av HTML i DOM safe rekommenderar OWASP
a) HTML-kodning och sedan
b) JavaScript-kodning av all otillförlitlig inmatning, som visas i dessa exempel:
element.innerHTML = ” < % = kodare.encodeForJS (kodare.encodeForHTML (untrustedData))%>”;
element.outerHTML = ” < % = kodare.encodeForJS (kodare.encodeForHTML (untrustedData))%>”;
dokument.skriv (“< %=kodare.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);
document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);