Questo XSS è riflesso o basato su DOM?

1

Scenario:

Lo script sul lato server accetta il parametro URL parameter1 e lo scrive senza codifica nel cookie cookie1 . Quindi viene restituita la normale pagina HTML contenente lo script sul lato client.

Lo script lato client, quando l'utente attiva un'azione, prende un valore memorizzato nel cookie cookie1 e lo inserisce senza alcuna elaborazione come contenuto HTML di un paragrafo.

Come classificare questo XSS? Da un lato, il carico utile raggiunge il server e il codice lato server può codificare i dati forniti dall'utente prima di inserirlo in un cookie. D'altra parte, la manipolazione DOM non sicura è un altro motivo di XSS. Potresti per favore chiarire la distinzione tra XSS riflessi e basati su DOM su questo particolare esempio?

    
posta 01.06.2015 - 10:08
fonte

1 risposta

0

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.

  1. Il sito web è in example.com e normalmente è in ascolto solo su HTTPS.
  2. 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.
  3. L'attaccante imposta il cookie contenente un codice di script.
  4. 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.

    
risposta data 01.06.2015 - 17:01
fonte

Leggi altre domande sui tag