DOM basato se lo stai basando sul sistema di classificazione DOM memorizzato / riflesso.
Da Tipi di OWASP di script cross-site :
DOM Based XSS is a form of XSS where the entire tainted data flow from
source to sink takes place in the browser, i.e., the source of the
data is in the DOM, the sink is also in the DOM, and the data flow
never leaves the browser.
Qui la fonte dei dati è document.cookie
e il sink è anche nel DOM (contenuto HTML di un paragrafo).
Tuttavia, classificare l'XSS in questo modo si riduce davvero alla semantica, come nota l'articolo:
For years, most people thought of these (Stored, Reflected, DOM) as
three different types of XSS, but in reality, they overlap. You can
have both Stored and Reflected DOM Based XSS.
Usando quanto sopra credo che potresti classificarlo come "Basato su DOM riflessa".
OWASP ha tentato di convincere le persone a riclassificare XSS come server o client, dove DOM XSS è un sottoinsieme di Client XSS. Utilizzando questo sistema sarebbe una vulnerabilità "Reflected Client XSS".
Indipendentemente dalla classificazione effettiva, la vulnerabilità è qui nel DOM piuttosto che nella memorizzazione dei cookie poiché non è necessario codificare HTML per l'archiviazione in un cookie. La codifica dovrebbe essere eseguita il più tardi possibile quando il contesto di utilizzo è noto, altrimenti questo cookie potrebbe essere stato avvelenato.
per es.
- Il sito web è in
example.com
e normalmente è in ascolto solo su HTTPS.
- Attacca Man-In-The-Middles una connessione HTTP dalla vittima e li invia a
example.com
su HTTP semplice. Il server HTTP in questo caso è l'autore dell'attacco.
- L'attaccante imposta il cookie contenente un codice di script.
- La vittima visita successivamente il
example.com
reale su HTTPS e l'XSS viene attivato.
Poiché il codice che aggiunge il testo al DOM non è la codifica HTML corretta, si tratta di un attacco XSS basato su DOM. Come puoi vedere dall'esempio precedente, non la codifica HTML sullo storage nel cookie non ferma lo scenario di attacco sopra.