A Practical Guide to DOM Based XSS / Lucideus Research

(oder wie es in einigen Texten heißt, “type-0 XSS”) ist ein XSS-Angriff, bei dem die Angriffsnutzlast als Ergebnis der Änderung der DOM-“Umgebung” im Browser des Opfers ausgeführt wird, die vom ursprünglichen clientseitigen Skript verwendet wird, so dass der clientseitige Code auf “unerwartete” Weise ausgeführt wird. Das heißt, die Seite selbst (die HTTP-Antwort) ändert sich nicht, aber der clientseitige Code, der in der Seite enthalten ist, wird aufgrund der böswilligen Änderungen, die in der DOM-Umgebung aufgetreten sind, anders ausgeführt.

Dies steht im Gegensatz zu anderen XSS-Angriffen (gespeichert oder reflektiert), bei denen die Angriffsnutzlast auf der Antwortseite platziert wird (aufgrund eines serverseitigen Fehlers).

VIDEOPRÄSENTATION

HTML-Escape dann JavaScript-Escape Vor dem Einfügen nicht vertrauenswürdiger Daten in den HTML-Untertext im Ausführungskontext

Beispiel für HTML-Methoden

Attribute

Element.innerHTML = “<HTML> Tags und Markup”;

Element.outerHTML = “<HTML> Tags und Markup”;

Methoden

Dokument.write(“<HTML> Tags und Markup”);

Dokument.writeln(“<HTML> Tags and markup”);

Guideline

Um dynamische Aktualisierungen von HTML im DOM-Safe vorzunehmen, empfiehlt OWASP

a) HTML-Codierung und dann

b) JavaScript-Codierung aller nicht vertrauenswürdigen Eingaben, wie in diesen Beispielen gezeigt:

element.innerHTML = “<%=”.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”;

element.outerHTML = “<%=”.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”;

dokument.schreiben(“<%=).encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.