UTF-7 XSS attacchi nei browser moderni

14

Recentemente ho letto l'articolo Ned Batchelders sugli attacchi XSS UTF-7 . Ho provato i suoi esempi , ma non ho potuto ottenere alcun attacco UTF-7 per funzionare nei browser moderni. Ho provato le versioni recenti di Firefox, Chrome e Safari finora.

So che Chrome ha alcuni meccanismi di prevenzione degli attacchi XSS ma, secondo la mia esperienza, Firefox ha un meccanismo più "generoso" di esecuzione di javascript, anche quando è rotto - tuttavia, nessuno di questi browser sembra selezionare il set di caratteri UTF-7 di default se il sito sta usando (ma non lo dichiara esplicitamente).

Quindi: qualcuno sa perché questo non funziona più? Sembra che il meccanismo di rilevamento UTF-7 sia cambiato, forse anche per ragioni di sicurezza? Gli attacchi UTF-7 possono ancora bersagliare i browser moderni se non è possibile modificare la dichiarazione del charset all'interno del documento o manipolare le intestazioni?

    
posta Michael Helwig 22.12.2013 - 10:02
fonte

2 risposte

13

Questo exploit è possibile solo nelle vecchie versioni di Internet Explorer. I moderni browser non rilevano automaticamente la codifica come UTF-7.

OWASP : -

This does not work in any modern browser without changing the encoding type which is why it is marked as completely unsupported.

Wikipedia : -

To mitigate this problem systems should perform decoding before validation and should avoid attempting to autodetect UTF-7. Older versions of Internet Explorer can be tricked into interpreting the page as UTF-7.

    
risposta data 23.12.2013 - 11:29
fonte
5

Chrome e Firefox sembra non supportare più UTF-7 in nessun formato. Specifica HTML5 :

User agents must support the encodings defined in the WHATWG Encoding standard. User agents should not support other encodings.

User agents must not support the CESU-8, UTF-7, BOCU-1 and SCSU encodings. [CESU8] [UTF7] [BOCU1] [SCSU]

Support for encodings based on EBCDIC is especially discouraged. This encoding is rarely used for publicly-facing Web content. Support for UTF-32 is also especially discouraged. This encoding is rarely used, and frequently implemented incorrectly.

    
risposta data 30.09.2014 - 01:01
fonte

Leggi altre domande sui tag