2014-09-01 10 views
5

Volevo sapere se c'è un modo per ottenere CSS Style XSS sui browser moderni?C'è un modo per ottenere CSS XSS nei browser moderni?

Per esempio, il più vecchio IE browsers il seguente è suscettibile:

<div style="width:expression(prompt('XSS'))"> 
+0

Se l'HTML è costruito dinamicamente come testo e i dati utilizzati per l'attributo di stile (ad esempio) non sono sfuggiti, l'iniezione di codice HTML è ancora possibile; ma sospetto che non sia quello che viene chiesto. – user2864740

+0

Puoi spiegare per cosa intendi usare questo? Ci possono essere alternative. – easwee

risposta

3

No. Come questo esempio illustra perfettamente, Javascript (o qualsiasi script) non ha posto in CSS, quindi XSS (il secondo S è per 'Scripting') non è possibile. Il CSS dovrebbe essere solo dichiarativo, ed è quando implementato conforme agli standard W3. Le espressioni dinamiche vengono ora eseguite con calc che può solo valutare semplici espressioni matematiche, senza ricorrere al motore JS.

expression era un attacco di sola IE per facilitare specifiche funzionalità fino a quando W3 ha trovato un'alternativa. Come è apparso calc, expression è stato dichiarato obsoleto. A partire da IE11, expression is no longer supported in the Internet Zone. Era announced in 2008 che sarebbe finito in questo modo, in particolare citando 'per ridurre la superficie di attacco' come uno dei motivi principali. Nelle versioni precedenti di IE11 è già da un po 'supportato solo nella modalità , con il numero di telefono e in modalità di emulazione IE7.

Riepilogando: il CSS non ha spazio per Javascript e pertanto non può essere attaccato con XSS se implementato correttamente come avviene in ogni browser corrente.

+0

"dovrebbe * non * essere possibile" o "non più possibile in IE" (in contrapposizione a "non possibile"). – user2864740

+1

Come detto, il supporto per 'expression' nei siti pubblici è stato completamente abbandonato in IE11 ed è stato severamente limitato per alcuni anni. Pertanto, escludendo bug e exploit sconosciuti, non dovrebbe essere possibile. –

Problemi correlati