A Practical Guide to DOM Based XSS / Lucideus Research

(lub jak to się nazywa w niektórych tekstach, “type-0 XSS”) jest atakiem XSS, w którym ładunek ataku jest wykonywany w wyniku modyfikacji “środowiska” DOM w przeglądarce ofiary używanej przez oryginalny skrypt po stronie klienta, tak że kod po stronie klienta działa w “nieoczekiwany” sposób. Oznacza to, że sama strona (czyli odpowiedź HTTP) nie zmienia się, ale kod po stronie klienta zawarty na stronie wykonuje się inaczej ze względu na złośliwe modyfikacje, które miały miejsce w środowisku DOM.

jest to w przeciwieństwie do innych ataków XSS (przechowywanych lub odbijanych), w których ładunek ataku jest umieszczany na stronie odpowiedzi (ze względu na Błąd po stronie serwera).

VIDEO POC

HTML Escape następnie JavaScript Escape przed wstawieniem niezaufanych danych do podkategorii HTML w kontekście wykonania

przykład niebezpieczne metody HTML

atrybuty

element.innerHTML = “< HTML> tagi i znaczniki”;

element.outerHTML = “< HTML > tagi i znaczniki”;

metody

dokument.write (“< HTML> tagi i znaczniki”);

dokument.WRITELN (“< HTML> tagi i znaczniki”);

wytyczne

aby dokonać dynamicznych aktualizacji HTML w sejfie DOM, OWASP zaleca

a) kodowanie HTML, a następnie

b) kodowanie JavaScript wszystkich niezaufanych danych wejściowych, jak pokazano w poniższych przykładach:

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

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

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

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.