Pericoli di XSS sul lato server vs lato client

5

Stavo cercando qui , e capisco che riflette- DOM XSS (XSS lato client) non passa attraverso uno script lato server ma Reflected XSS ( XSS lato server ), ma né gli hit / vengono memorizzati nel database. Ma sono confuso su cosa può fare un'iniezione che l'altro non può fare. Quali sono i pericoli dell'XSS che passa attraverso uno script lato server o viene iniettato direttamente nella pagina del client (lo script viene comunque eseguito sul lato client indipendentemente)? Inoltre, esiste una soluzione DOM XSS persistente (XSS lato client), se come?

    
posta dylan7 20.08.2015 - 07:08
fonte

2 risposte

4

L'impatto di XSS è lo stesso indipendentemente dal fatto che sia memorizzato / riflessivo o basato su DOM / sul lato server - l'autore dell'attacco ottiene il pieno controllo della sessione web. XSS memorizzato è più facilmente sfruttabile (non è necessario che un utente faccia clic su un collegamento), quindi è più serio. Se una vulnerabilità è basata su DOM o sul lato server non influisce in modo significativo sulla gravità.

È possibile avere memorizzato XSS basato su DOM. Ad esempio, considera un sito di e-commerce che consente agli utenti di pubblicare recensioni dei prodotti. È un'applicazione a singola pagina, quindi quando si visualizza un prodotto, il JavaScript invia una richiesta Ajax per recuperare le informazioni sul prodotto. Il back-end Ajax restituisce correttamente JSON escape, quindi non è vulnerabile. Tuttavia, JavaScript esegue il rendering dei dati restituiti come HTML. Ciò crea una vulnerabilità XSS: un utente malintenzionato può inviare una recensione contenente un attacco XSS e quando un utente vittima visualizza quel prodotto, il payload XSS viene eseguito nel proprio browser.

    
risposta data 20.08.2015 - 11:41
fonte
3

XSS memorizzato o persistente è un tipo di vulnerabilità XSS in cui l'input dell'utente non attendibile viene elaborato e memorizzato dal server in un file o database senza alcuna convalida e questi dati non attendibili vengono recuperati dalla memoria e riflessi in risposta senza codifica o escaping con conseguente esecuzione permanente del codice nel browser ogni volta che i dati memorizzati si riflettono nella risposta.

XSS riflessa o non persistente è un tipo di vulnerabilità XSS in cui l'input dell'utente non attendibile viene immediatamente elaborato dal server senza alcuna convalida e viene riflesso nella risposta senza codifica o escaping con conseguente esecuzione di codice nel browser.

L'XSS basato su DOM è una forma di XSS lato client che si verifica in un ambiente in cui l'origine dei dati si trova nel DOM, il sink si trova anche nel DOM e il flusso di dati non lascia mai il browser. Si verifica quando un dato non affidabile è dato alla fonte viene eseguito come risultato della modifica del DOM "ambiente" nel browser. DOM XSS si verifica quando i dati non attendibili non sono in forma di escape o codificati rispetto al contesto.

C'è anche mXSS o Mutation XSS è un tipo di vulnerabilità XSS che si verifica quando i dati non affidabili vengono elaborati nel contesto della proprietà innerHTML di DOM e vengono modificati dal browser, risultando come un vettore XSS valido. In mXSS, i dati specificati dall'utente che appaiono innocui possono passare attraverso il lato client o i filtri XSS lato server se presenti o meno e vengono mutati dal motore di esecuzione del browser e rifletterti come vettore XSS valido.

In breve lo XSS memorizzato è la più grande minaccia perché consente di rubare i cookie e compromettere il sito Web (se HTTPOnly non è supporter) senza l'interazione dell'utente. Riflesso o DOM XSS può anche essere molto utile per gli aggressori, ad esempio per eseguire attacchi di phishing.

    
risposta data 20.08.2015 - 07:49
fonte

Leggi altre domande sui tag