Una richiesta inviata da un attacco XSS in un modulo di modifica password può essere considerata come CSRF?

2

Il mio partner stava testando un'applicazione web e ha trovato una vulnerabilità XSS su un modulo di modifica password, questo modulo colloca la vecchia password in un campo nascosto, quindi è possibile utilizzare un attacco XSS per cambiare la password di un utente, perché la vecchia password può essere acquisita tramite XSS exploit. Anche questo modulo non utilizza un token o CAPTCHA per garantire se una richiesta è valida, quindi la mia domanda è: questa vulnerabilità potrebbe essere considerata come CSRF? Perché?

Non sono sicuro perché se mitighino la vulnerabilità XSS e modifichiamo il campo nascosto per campo di testo per garantire che gli utenti introducano la loro vecchia password, un CSRF non potrebbe essere sfruttato. Il mio partner mi ha detto che potrebbe essere considerato un CSRF perché anche se non conosciamo la vecchia password, l'applicazione web non usa un token o CAPTCHA in modo che possiamo cambiare una password usando la forza bruta e questa una specie di CSRF. È corretto?

    
posta hmrojas.p 17.03.2017 - 23:57
fonte

1 risposta

3

Non lo classificherei come CSRF.

Il meccanismo di protezione che sta fallendo qui è la protezione XSS, non la protezione CSRF; Se non ci fosse una vulnerabilità XSS, non è possibile eseguire un attacco CSRF. È vero che tutte le vulnerabilità XSS possono essere sfruttate per bypassare tutta la protezione CSRF che non è basata su challenge-response (password, captcha, ecc.), Ma ciò non significa che tutte le vulnerabilità XSS debbano essere classificate come CSRF.

Anche qui non esiste una vulnerabilità CSRF classica separata. Anche se non esiste alcuna protezione per i token, il modulo è protetto da CSRF tramite un meccanismo di risposta alle sfide poiché è richiesta una password. Tuttavia, il tuo partner ha un punto riguardante lo scenario bruteforce tramite CSRF. Lo considererei una vulnerabilità se non ci sono protezioni bruteforce per il modulo e suggerirei di aggiungere qualsiasi protezione CSRF sia usato negli altri moduli. Tuttavia classificherei come vulnerabilità bruteforce (tramite CSRF).

Oltre a ciò, il fatto che la password sia anche mostrata è una vulnerabilità di per sé, come il fatto che le password sono apparentemente memorizzate in testo in chiaro; È necessario innanzitutto verificare che la password sia effettivamente fornita dall'applicazione, non dal browser o da un gestore password basato su plug-in.

    
risposta data 18.03.2017 - 00:08
fonte

Leggi altre domande sui tag