Qual è la differenza tra le normali vulnerabilità XSS e Dom XSS? [duplicare]

5

Non sono un ragazzo di computer, ma solo per curiosità ho recentemente iniziato a imparare PHP per programmare il mio sito web e ho letto alcune delle vulnerabilità più comuni che esistono nelle applicazioni web. Conosco le nozioni di base sulle vulnerabilità di Cross Site Scripting. Quindi, un attacco XSS avviene quando l'input dell'utente non viene filtrato correttamente e viene usato nel corpo della pagina, quindi l'attaccante può iniettare cose come i codici javascript / vbscript nel browser e fare cose sul lato client come dirottarne il loro cookie e salvarli in un database.

Ma qual è la differenza tra XSS e Dom XSS? Esiste una differenza fondamentale tra loro? Le vulnerabilità DOM XSS rappresentano un rischio maggiore per la sicurezza? Se sì, come? E come devo cercare le vulnerabilità Dom XSS nelle applicazioni web? Trovo alcune cose su Internet, ma alcune sono state avanzate per il mio attuale livello di comprensione.

Grazie ragazzi.

    
posta math.n00b 21.02.2014 - 10:20
fonte

2 risposte

9

Ok così a livello base ci sono tre tipi di scripting cross-site.

Riflesso - Si inseriscono i dati nell'applicazione, che viene poi riprodotta senza escape, disinfezione o codifica ed è possibile includere il codice JavaScript che viene quindi eseguito nel contesto dell'applicazione

Memorizzato - Si immettono i dati che sono memorizzati all'interno dell'applicazione e quindi restituiti in seguito in risposta a un'altra richiesta. Questi dati contengono codice JavaScript che viene eseguito nel contesto dell'applicazione

Basato DOM - Si immettono dati che modificano il DOM della pagina Web, questi dati contengono JavaScript che viene eseguito nel contesto dell'applicazione. È relativamente simile all'XSS riflesso, ma la differenza è che nella modifica del DOM i dati potrebbero non arrivare al server (il che cambia il modo in cui può / dovrebbe essere mitigato poiché i filtri lato server potrebbero non essere efficaci).

Un esempio potrebbero essere le applicazioni web che fanno un uso pesante del codice JavaScript sul lato client e che prendono i dati dell'utente e aggiornano il DOM senza mai inviare effettivamente i dati al server. Se visualizzi applicazioni che apportano modifiche istantanee alla pagina che stai visualizzando quando inserisci dati, è probabile che utilizzino JavaScript sul lato client per aggiornare il DOM.

In termini di trovarli, è un po 'complicato, poiché gli strumenti per trovare XSS basati su DOM non sono sviluppati come quelli per XSS riflettente o memorizzato. L'unico strumento che lo riguarda specificamente, di cui sono a conoscenza è Dominator . Sono inoltre disponibili informazioni su DOM XSS Wiki che potrebbero essere utili.

    
risposta data 21.02.2014 - 10:57
fonte
0

In poche parole, XSS basato su DOM può essere sfruttato senza che il client richieda il server. L'attacco ha luogo nel DOM che è locale (nel contesto dell'utente).

Per uno sviluppatore di trovare e correggere quelli, questo è complicato a partire da oggi non esiste una tecnologia matura per rilevare tali vulnerabilità. Alcuni programmi e script sono usati ma questo è ancora molto "work in progress", anche il menzionato software "Dominator" (che, a proposito, è troppo costoso per quello che fa IMO).

    
risposta data 21.02.2014 - 12:00
fonte

Leggi altre domande sui tag