Chrome è completamente sicuro contro Reflected XSS?

20

Ho notato che Chrome non esegue script che fanno parte della richiesta web,

http://vulnerable_site?pageTitle=<script>alert('xss')</script>

Con tali collegamenti poiché lo script fa parte della richiesta web, Chrome non esegue lo script. Questo impedisce tutti i tipi di attacchi Reflected XSS con il browser Chrome?

Modifica Ho già letto questo thread; anche se il titolo sembra simile, i contenuti sono diversi.

    
posta vikkyhacks 16.03.2014 - 16:16
fonte

6 risposte

23

No, perché il filtro XSS guarda solo se vede il codice XSS nell'input nell'HTML emesso dal tuo server.

Ad esempio, se Chrome visualizza la tua pagina web con un URL che contiene quanto segue:

?q=<script>alert("XSS!")</script>

e se l'HTML restituito dal server contiene questo:

<p>You have searched for <b><script>alert("XSS!")</script>

sa che questo codice è molto probabilmente il risultato della sua inclusione nella richiesta e lo neutralizza.

Tuttavia, se il codice non viene trovato nella richiesta, ad esempio se l'applicazione accetta un input codificato in qualche modo, il filtro potrebbe non essere in grado di capire che il codice è il risultato di qualche codice XSS incorporato in la richiesta.

Come si vede nel registro di commit per WebKit, fino a quando non è stato biforcato di recente con il motore di rendering in Chrome, stanno cercando di risolvere i bypass più comuni, in cui il codice XSS nell'URL e il codice XSS risultante in HTML sembrano leggermente diversi.

Se non si applica nessuna di queste regole per casi speciali, l'XSS verrà lasciato vuoto. Ad esempio, se non stanno decodificando i dati codificati Base64 nell'URL, se l'applicazione Web dovesse accettare input codificati con Base64, potrebbe essere possibile XSS un'applicazione web.

Un esempio:

?q=PHNjcmlwdD5hbGVydCgnWFNTIScpPC9zY3JpcHQ+

( PHNjcmlwdD5hbGVydCgnWFNTIScpPC9zY3JpcHQ+ è <script>alert("XSS!")</script> codificato in Base-64), se non filtrato, darebbe come risultato una risposta HTML come questa:

<p>You have searched for <b><script>alert("XSS!")</script>

Inoltre, non fermerà l'XSS che si verifica con dati non incorporati nell'HTML non codificati, ma viene trattato in modo non sicuro da JavaScript.

Ad esempio, considera una pagina che contiene il seguente codice JavaScript:

eval(location.hash.substring(1))

Questo eseguirà qualsiasi codice che trascini il # nell'URL, ma non filtrato da Chrome.

Puoi vedere questo esempio in azione qui

Un altro esempio, che utilizza Base64

    
risposta data 17.03.2014 - 13:16
fonte
12

La prevenzione dell'XSS non è responsabilità del browser, i buchi XSS sorgono a causa di difetti in un sito Web, e spetta ai proprietari dei siti Web prevenire questo tipo di difetti.

Alcuni browser hanno implementato tentativi di attenuazione dei buchi XSS e CSRF nei siti Web, ma questi sono euristici alla ricerca di modelli tipici di attacchi. Non sono in alcun modo completi.

Ci sono infiniti modi per implementare un buco XSS, e non esiste un modo sicuro per distinguere tra un buco e un comportamento previsto. Non esiste un modo in cui un filtro del browser può mai essere una sostituzione per i proprietari dei siti che ne sono a conoscenza, che si preoccupano e affrontano il problema dei buchi XSS e CSRF.

Mi chiedo se questi filtri facciano più male che bene creando un falso senso di sicurezza.

    
risposta data 16.03.2014 - 20:04
fonte
2

No. Vedi questo commit Webkit e trova la parola "circonvallazione". Vedrai bypass di Auditor che i ricercatori hanno trovato nel periodo di tempo ...

    
risposta data 16.03.2014 - 22:01
fonte
2

Come indicato su bug di Chrome 118808 da uno sviluppatore:

XSS auditor bypasses don't constitute Chrome security vulnerabilities (which is why this bug is flagged SecSeverity-None). You can find our severity guidelines here: http://dev.chromium.org/developers/severity-guidelines

To clarify a bit more, the XSS auditor is a defense-in-depth mechanism to protect our users against some common XSS vulnerabilities in web sites. We know for a fact it can't catch all possible XSS variants, and those it does catch still need to be fixed on the affected site. So, the auditor is really an additional safety-net for our users, but not intended as a strong security mechanism.

che mostra come il team di Chrome stesso non si aspetta che sia completamente sicuro (il che è probabilmente impossibile).

    
risposta data 14.07.2018 - 23:03
fonte
-2

Chrome XSS Auditor può essere ignorato utilizzando i seguenti script:

  1. http://vulnerable_site?pageTitle=<a href="data:text/html,your xss payload">xss

  2. http://vulnerable_site?pageTitle=<a href="data:text/html;base64,base 64 encoded format of your xss payload">xss

risposta data 18.04.2016 - 21:15
fonte
-6

chrome protegge da tutti i vettori di attacco xss riflessi. Se riesci a trovare un modo per aggirare questo filtro, goog ti darà una taglia. Detto questo, riflesso xss è ancora una vulnerabilità sul sito web

    
risposta data 16.03.2014 - 17:28
fonte

Leggi altre domande sui tag