La prevenzione CSRF impedisce anche l'attacco XSS riflesso?

7

Quello che ho capito su XSS riflesso è

... When a web application is vulnerable to this type of attack, it will pass unvalidated input sent through requests back to the client... [1]

Supponendo che la mia webapp abbia una convalida CSRF sul server che controlla un token CSRF valido per tutte le richieste. Fornirà un errore corretto se riceve una richiesta che non contiene un token CSRF (questo errore è una semplice stringa, non ha vettori di attacco). Per completezza, diciamo anche che ho delle adeguate misure di sicurezza per evitare che il token CSRF venga rubato o indovinato.

Quindi è sicuro assumere che i token CSRF impediscano anche l'attacco XSS riflesso perché entrambi sono veri:

  1. Il server non riflette nulla se il token CSRF non è presente.
  2. L'utente malintenzionato non può avere o indovinare il token CSRF.
posta mg007 27.08.2014 - 10:08
fonte

2 risposte

9

La risposta è solitamente sì se il valore si riflette solo se viene fornito un token CSRF valido: l'utente può solo "attaccare" se stesso in questa istanza.

Tuttavia, se è stato generato un modulo che codifica correttamente l'output in una pagina che contiene un token CSRF, ma tale modulo viene inviato a una pagina che non codifica correttamente l'output, il tuo sito è ancora vulnerabile.

es. Pagina originale (una richiesta GET, che non è normalmente soggetta a token CSRF a causa della mancanza di effetti collaterali - solo i POST dovrebbero causare effetti collaterali): -

www.example.com/displayForm.php?name=<script>alert('xss')</script>

contiene

<input type="hidden" name="csrfToken" value"123456" />
<input type="hidden" name="name" value="&lt;script&gt;alert(&#039;xss&#039;)&lt;/script&gt;" />

Tuttavia, quando questa pagina viene inviata dal POST, name viene emessa non codificata:

<body>

Hello <script>alert('xss')</script>.

</body>
    
risposta data 27.08.2014 - 11:16
fonte
1

Anche le pagine di errore possono aver riflesso le vulnerabilità XSS, specialmente quando qualsiasi traccia di errore include parametri di input. Se viene pubblicata una pagina di errore vulnerabile quando il token CSRF non è presente, la protezione CSRF non impedisce l'XSS riflesso.

    
risposta data 27.08.2014 - 15:29
fonte

Leggi altre domande sui tag