C'è una certa confusione di base che ho.
Una vittima non sospetta visita un sito Web vulnerabile, vulnerable.com
e accede lì. vulnerable.com
, post login, invia una risposta che ha il seguente set di header HTTP,
Access-Control-Allow-Credentials: True
Access-Control-Allow-Origin: vulnerablesite.com
Diciamo che il cookie di sessione è limitato al solo percorso /home.html
(che potrebbe non avere molto senso, ma assumiamo solo questo per il gusto di questa discussione) e non ha il flag HTTPOnly impostato.
Ora nello stesso browser apre una nuova scheda e visita vulnerablesite.com/some_page.html
Un utente malintenzionato identifica un XSS memorizzato in vulnerablesite.com/some_page.html
e decide di sfruttarlo per ottenere l'accesso al cookie di sessione dell'utente su vulnerable.com
.
Per fare ciò, l'utente malintenzionato inietta uno script AJAX in vulnerablesite.com/some_page.html
, quindi quando la vittima visita la pagina, farà una richiesta AJAX a vulnerable.com/home.html
. Ora questa richiesta avrà sicuramente esito positivo (nessun motivo per non farlo e anche perché Access-Control-Allow-Credentials
era true) e la risposta ricevuta sarà anche leggibile dallo script AJAX dell'attaccante (poiché Access-Control-Allow-Origin
è stato impostato su vulnerablesite.com
, quindi nessuna violazione della stessa politica di origine)
Quando lo script AJAX dell'attaccante dice xhr.response, questo oggetto risposta conserverà sicuramente la pagina /home.html
.
La confusione principale riguarda il percorso e gli attributi del dominio del cookie. Domande
- Quindi, in questo caso, quando lo script dell'attaccante dice document.cookie ora, l'attaccante sarà in grado di leggere il cookie di sessione della vittima?
- perché il cookie ha come ambito
/home.html
, qualsiasi richiesta fatta a/home.html
trasporterà questo cookie. Ma perché la risposta a/home.html
non sta facendo assolutamente un set-cookie, quando è ajax dell'attaccante dire document.cookie cosa verrà letto esattamente? - non hanno idea di quale sarebbe l'attributo di dominio del cookie in questo caso e in che modo inciderà sulla lettura del cookie in comunque se lo farà lo stesso.