XSS nel contesto di un CDN

1

Diciamo che c'è un sito web example.com . Ospita contenuto statico da un CDN, example.net .

Questo sito consente il caricamento di un'immagine, che verrà poi pubblicata dal CDN. Queste immagini possono essere SVG e non vengono filtrate in alcun modo, quindi possono contenere contenuti HTML arbitrari (compresi i tag di script).

Considereresti questo un problema di sicurezza?

Da un lato, consente di eseguire codice se qualcuno accede all'immagine (ad esempio, facendo clic su di esso nel contesto di example.com ). Dall'altro, funziona solo sotto il dominio del CDN in modo da non poter rubare i cookie e così via. Tuttavia, potrebbe essere utilizzato per reindirizzare a un sito dannoso.

Un'altra nota: l'immagine viene pubblicata con Content-Security-Policy:default-src 'none'; , quindi il codice viene eseguito solo in IE.

    
posta Michael 05.05.2014 - 21:20
fonte

3 risposte

1

Sì, questa è una vulnerabilità di sicurezza importante, ma non ha nulla a che fare con XSS.

Ad esempio, un utente malintenzionato potrebbe eseguire il rendering di un falso modulo di accesso e indurre gli utenti a distribuire le proprie password.

L'SVG può anche essere utilizzato per un attacco di clickjacking contro se stessi o siti che si fidano di te, anche se è in azione una protezione allo stato dell'arte. Le tecniche standard come l'intestazione X-Frame-Options di solito controllano solo il contesto di esplorazione di primo livello e questo è il tuo sito. Pertanto, è probabile che un utente malintenzionato sia in grado di incorporare altre pagine del tuo sito o dei siti partner in una cornice e quindi indurre l'utente a intraprendere azioni su tali pagine.

    
risposta data 05.06.2014 - 03:49
fonte
0

In generale è sempre un rischio includere contenuti da una fonte non attendibile che non è completamente sotto il tuo controllo. Quindi ha senso essere molto restrittivo con esso. Forse è possibile modificare il flusso di lavoro in modo da avere il controllo di quali immagini sono caricate nella CDN, ciò contribuirebbe a ridurre significativamente i rischi.

Anche se non sono un esperto dei dettagli dell'implementazione del CSP lato browser, se si è solo lista bianca:

img-src per il CDN: il browser consentirebbe in generale solo il rendering delle immagini da quella fonte e proibirebbe l'esecuzione di qualsiasi script o il caricamento di altro tipo di contenuto (direttiva violata) da quella fonte.

Sono abbastanza sicuro che funzioni anche se il codice dello script è mascherato da un'immagine, in quanto il browser accetta solo il contenuto dell'immagine da quella fonte (il concetto CSP sarebbe del tutto inutile se ciò fosse possibile). Naturalmente, la protezione funziona solo se il contenuto viene visualizzato nel contesto del sito in cui è implementato il CSP. Se carichi quell'URL dell'immagine direttamente nel browser, CSP non può proteggerti.

Per essere assolutamente certi ti consiglierei di verificarlo esplicitamente.

    
risposta data 05.05.2014 - 23:27
fonte
0

Questo è certamente un rischio per la sicurezza. Se non stai disinfettando il codice HTMl, questo ti consente di aprire sia XSS facile che l'hook del browser se si fa clic sull'immagine contenente HTML dannoso. Se questa immagine viene salvata sul server, questo rende il sito vulnerabile a XSS persistente. Si potrebbe convertire l'immagine in esadecimale e includere anche HTML anche per ignorare un filtro ed eseguire il codice JavaScript, ecc.

    
risposta data 05.06.2014 - 00:38
fonte

Leggi altre domande sui tag