A Practical Guide to DOM Based XSS | Lucideus Research

(o come viene chiamato in alcuni testi, “type-0 XSS”) è un attacco XSS in cui il payload di attacco viene eseguito come risultato della modifica dell ‘ “ambiente” DOM nel browser della vittima utilizzato dallo script originale lato client, in modo che il codice lato client venga eseguito in modo “inaspettato”. Cioè, la pagina stessa (la risposta HTTP che è) non cambia, ma il codice lato client contenuto nella pagina viene eseguito in modo diverso a causa delle modifiche dannose che si sono verificate nell’ambiente DOM.

Questo è in contrasto con altri attacchi XSS (memorizzati o riflessi), in cui il payload di attacco viene inserito nella pagina di risposta (a causa di un difetto lato server).

VIDEO POC

Escape HTML quindi Escape JavaScript prima di inserire dati non attendibili nel subcontesto HTML all’interno del contesto di esecuzione

Esempio Metodi HTML pericolosi

Attributi

elemento.innerHTML = “< HTML> Tag e markup”;

elemento.outerHTML = “< HTML > Tag e markup”;

Metodi

documento.scrivi (“< HTML> Tag e markup”);

documento.writeln (“< HTML> Tag e markup”);

Linea guida

Per rendere sicuri gli aggiornamenti dinamici all’HTML nel DOM, OWASP consiglia

a) Codifica HTML e quindi

b) Codifica JavaScript per tutti gli input non attendibili, come mostrato in questi esempi:

elemento.innerHTML = ” < % = Codificatore.encodeForJS(Encoder.encodeForHTML(DATI non attendibili))%>”;

elemento.outerHTML = ” < % = Encoder.encodeForJS(Encoder.encodeForHTML(DATI non attendibili))%>”;

documento.scrivi (“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.