Cross-Site Scripting з UTF-7 в Mozilla та Firefox
23:53 17.04.2009В минулому році, 09.02.2008, я виявив цікаву Cross-Site Scripting уразливість з використанням UTF-7 в Mozilla та Firefox. Дану XSS я відношу до типу Strictly social XSS.
Дана уразливість подібна до Cross-Site Scripting в Mozilla та Firefox, яку я виявив 23.09.2007. В тій уразливості атака відбувалася через gopher, а в цій уразливості атака відбувається через http, https і ftp. Дане дослідження є продовженням попереднього.
Дана уразливість пов’язана з тим, що браузер недостатньо фільтрує символи при UTF-7 кодуванні в протоколах http, https і ftp. Дане кодування слід виставити вручну (що зменшує рівень небезпеки). Тому для атаки потрібно змусити жертву встановити UTF-7 кодування (використовуючи методи соціальної інженерії, як це показано в прикладах з додатковим текстом).
XSS:
Для http://www.mozilla.org
- alert(document.cookie)
- alert(document.cookie) (з додатковим текстом)
Для https://www.mozilla.org
- alert(document.cookie)
- alert(document.cookie) (з додатковим текстом)
Для ftp://ftp.mozilla.org
- alert(document.cookie)
- alert(document.cookie) (з додатковим текстом)
Це універсальний XSS - уразливість працює на будь-якому сайті (http/https), де можна запостити інформацію, або на Error 403 і Error 404 сторінках. Також атака можлива на всіх ftp серверах.
Уразливі Mozilla 1.7.x та попередні версії, Firefox 1, Firefox 2 і Firefox 3.0 та Firefox 3.0.1.
В даних браузерах можлива універсальна XSS атака через http/https/ftp/gopher протоколи. Це приклад нового типу XSS уразливостей (що я відкрив в 2007 році) - Виключно соціальний XSS (Strictly social XSS). Дана уразливість може використовуватися в парі з Charset Remembering уразливістю в Mozilla Firefox.
В Firefox 3.0.2 дана уразливість була потайки виправлена, про що я вже писав (за рахунок відключення можливості вибору UTF-7 кодування).