E 'possibile prendere tutti i cookie di diversi siti Web con un solo attacco XSS?

5

Mi stavo chiedendo se è possibile prendere tutti i cookie per diversi siti Web attraverso un attacco XSS? Ad esempio, si supponga che Twitter abbia una vulnerabilità XSS sfruttata da un utente malintenzionato. L'utente malintenzionato potrebbe prelevare tutti i cookie memorizzati nel mio browser da Facebook, Gmail, Yahoo ecc. Utilizzando l'exploit XSS di Twitter?

    
posta Analoggen hacker 13.04.2017 - 13:03
fonte

2 risposte

11

No, perché XSS significa "Cross-Site Scripting".

Normalmente un sito può accedere solo ai cookie nella propria origine. Questa restrizione è nota come Stessa politica di origine .

Questo è example.org normalmente non può accedere ai cookie in example.com .

Se c'è un difetto XSS su example.com , e il flag HttpOnly non è usato su un cookie in example.com , allora example.org può rubare i cookie da example.com se un utente cade vittima dell'attacco .

Se questo attacco permettesse l'accesso a tutti i cookie del browser, l'hacker non avrebbe affatto bisogno del difetto XSS - scriverebbe solo uno script nel proprio dominio ( example.org in questo caso) se non ci fossero restrizioni della stessa politica di origine .

Un difetto che vorrebbe consentire l'accesso a tutti i cookie non HttpOnly, sarebbe un " Universal XSS " vulnerabilità. uXSS è un difetto in un browser web o un'estensione del browser che consente di violare la stessa politica di origine.

    
risposta data 13.04.2017 - 15:48
fonte
4

No, un codice dannoso su un sito Web potrebbe recuperare solo i cookie che sono stati impostati da questo sito Web (e dai suoi sottodomini). Anche in questo caso, i cookie hanno il La flag Http Only non può essere letta dal codice JavaScript.

Per esempio, se guardiamo i cookie che Facebook imposta quando richiedi la sua homepage senza essere loggato:

$ curl --head https://www.facebook.com

HTTP/1.1 200 OK
...
Set-Cookie: fr=0a...Rvgc; 
            expires=Wed, 12-Jul-2017 11:09:57 GMT; 
            path=/; 
            domain=.facebook.com; 
            httponly

Nota HttpOnly alla fine dell'intestazione Set-Cookie . Se, nel contesto del browser di Facebook (ad esempio nella console di sviluppo) si accede all'oggetto document.cookie tramite JavaScript, non conterrà il contenuto del cookie fr . Tuttavia, il browser memorizzerà comunque il cookie e lo invierà insieme a ogni richiesta HTTP inviata a *.facebook.com .

    
risposta data 13.04.2017 - 13:08
fonte

Leggi altre domande sui tag