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.htmltrasporterà questo cookie. Ma perché la risposta a/home.htmlnon 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.