Esiste una strong protezione contro CSRF eseguita dal server sames tramite XSS memorizzato?

2

Se disponiamo di un dominio con vulnerabilità XSS memorizzata. So che è già fondamentale! .. Ma, sto parlando di limitare il danno.

L'hacker non può ottenere il cookie di sessione dell'amministratore, perché è contrassegnato come httponly e il server non consente il metodo TRACE.

Tuttavia, l'utente malintenzionato può utilizzare CSRF per forzare l'amministratore a creare un utente nell'applicazione.

La maggior parte dei controlli CSRF lo renderà solo difficile per l'hacker ma non impossibile;

  • il token di sincronizzazione e il viewstate possono essere facilmente rubati con richieste Ajax poiché vengono inviati dallo stesso dominio.
  • Referrer e la convalida dell'origine non sono applicabili.
  • qualsiasi altra richiesta multi-passo potrebbe essere simulata con ajax.
  • Anche i doppi sottomessi sono vulnerabili, poiché il browser invia i cookie per impostazione predefinita.
  • I CAPTCHA sono difficili, ma teoricamente possono essere risolti utilizzando turk meccanici.

L'unico controllo che sembra funzionare richiede le credenziali dell'amministratore ogni volta che viene effettuata una richiesta sensibile. Ma la creazione di un utente è una richiesta sensibile? O cambiare la password di qualcuno? potrebbe essere un compito quotidiano ..

Qualche informazione su questo argomento? possiamo prevenire contro CSRF tramite stored-XSS?

    
posta Khalid 12.01.2015 - 11:59
fonte

1 risposta

2

A causa della politica Same-Origin (SoP), CSRF e XSS hanno una sorta di relazione con la carta-forbici. Tutti i metodi di prevenzione CSRF si basano sul SoP e su XSS in un bypass fondamentale del SoP . Nel caso di XSS riflesso, è necessaria una "richiesta cross-site" per consegnare il payload JavaScript, quindi in questo caso un token CSRF può rendere XSS riflettente non sfruttabile.

Con XSS puoi leggere qualsiasi pagina con un XHR, che può essere usato per ottenere i token di sincronizzazione CSRF. Anche i captcha non sono sicuri, perché possono essere risolti in remoto usando XSS ( un tunnel di manzo farà il trucco ). Con XSS puoi anche ottenere password con phishing o indurre l'utente ad autorizzare azioni per conto di un utente malintenzionato.

Vorrei essere chiaro, Non esiste un metodo di prevenzione CSRF che possa proteggere da un bypass SoP. Una vulnerabilità XSS persistente è uno dei migliori bypass SoP disponibili per l'aggressore moderno.

    
risposta data 12.01.2015 - 17:20
fonte

Leggi altre domande sui tag