(vagy ahogy egyes szövegekben hívják,” type-0 XSS”) egy XSS támadás, amelyben a támadás hasznos terhelését az áldozat böngészőjében az eredeti kliens oldali szkript által használt Dom” környezet “módosításával hajtják végre, így a kliens oldali kód” váratlan ” módon fut. Vagyis maga az oldal (azaz a HTTP válasz) nem változik, de az oldalon található ügyféloldali kód másképp fut le a Dom környezetben bekövetkezett rosszindulatú módosítások miatt.
ez ellentétben áll más (tárolt vagy visszavert) XSS támadásokkal, ahol a támadás hasznos terhelése a válaszoldalba kerül (szerveroldali hiba miatt).
videó POC
HTML Escape, majd JavaScript Escape, mielőtt nem megbízható adatokat helyezne be HTML Alszövegbe a végrehajtási kontextusban
példa veszélyes HTML-módszerekre
attribútumok
elem.innerHTML = “< HTML> címkék és jelölés”;
elem.outerHTML = “< HTML> címkék és jelölések”;
módszerek
dokumentum.írás (“< HTML> címkék és jelölések”);
dokumentum.writeln (“< HTML> tag and markup”);
útmutató
a HTML dinamikus frissítéséhez a Dom széfben az OWASP javasolja a
a) HTML kódolást, majd
b) JavaScript kódolja az összes nem megbízható bemenetet, amint az a következő példákban látható:
elem.innerHTML = ” < %=kódoló.encodeForJS (kódoló.encodeForHTML (untrustedData))%>”;
elem.outerHTML = ” < %=kódoló.encodeForJS (kódoló.encodeForHTML (untrustedData))%>”;
dokumentum.write (“< %=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);
document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);