Cross-Site Scripting уразливості в Mozilla та Firefox
23:56 30.07.2009В липні, 02.07.2009, я виявив Cross-Site Scripting уразливості в Mozilla та Firefox.
Які дозволяють обійти заборону на виконання JavaScript коду в location-header редиректорах (при редирекції на javascript: URI). Про XSS атаку через refresh-header редиректори в різних браузерах я писав в записі про Cross-Site Scripting уразливості в Mozilla, Internet Explorer, Opera та Chrome.
В Mozilla та Firefox на ASP сайтах (чи інших сайтах, що використовують відповідь “302 Object moved”), при запиті до location-header редиректора з вказанням JavaScript коду, браузер виводить сторінку “Object Moved”, де в лінці “here” виводить даний код. При натисканні на яку код спрацює. Тобто це Strictly social XSS.
XSS:
При запиті до скрипта на сайті:
http://site/script.php?param=javascript:alert(document.cookie)
Що поверне у відповіді заголовок Location:
HTTP/1.x 302 Object moved
Location: javascript:alert%28document.cookie%29
Браузер виводить сторінку “Object Moved”. При кліку по лінці “here” код спрацює в контексті даного сайту.
Робочі приклади ASP-редиректорів.
XSS:
На сервері Microsoft IIS 6.0:
На сервері nginx 0.6.35:
- alert(document.cookie)
- цікавий (код спрацьовує в Mozilla)
Окрім javascript URI, також можна використати data URI для виконання JS-коду, якщо редиректор виводить в заголовку Location символи “;” і “,” у чистому (не в URL encoding) вигляді.
Уразливі Mozilla 1.7.x та попередні версії.
Уразливі Mozilla Firefox 3.0.12 (і 3.5.x також повинні бути уразливими) та попередні версії.
Також уразливі браузери: SeaMonkey 1.1.17, Firefox 3.6 a1 pre, Firefox 3.7 a1 pre, Orca Browser 1.2 build 5 та Maxthon 3 Alpha (3.0.0.145) з Ultramode. А також браузери Firefox 3.0.19, Firefox 3.5.11, Firefox 3.6.8, Firefox 4.0b2 та Opera 10.53 (при цьому версія Opera 9.52 невразлива).
[Оновлення: 04.08.2010]
Додав інформацію про використання data URI для виконання JS-коду в location-header редиректорах з відповіддю “302 Object moved”. Подібно до редиректорів з відповіддю “302 Found”.
[Оновлення: 07.08.2010]
Додав інформацію про інші уразливі браузери.
[Оновлення: 16.09.2012]
Як я виявив, у версіях Firefox 10.0.7 і Firefox 15.0.1 дана уразливість більше не працює - вона була приховано виправлена Mozilla в Firefox 9.0.
Середа, 21:21 05.08.2009
Як я сьогодні перевірив, Mozilla Firefox 3.0.13 також уразливий.
П'ятниця, 15:53 28.08.2009
Як я написав в своїй статті Cross-Site Scripting атаки через редиректори, дана уразливість має місце також в браузерах SeaMonkey 1.1.17, Firefox 3.6 a1 pre, Firefox 3.7 a1 pre, Orca Browser 1.2 build 5 та Maxthon 3 Alpha (3.0.0.145) з Ultramode.
П'ятниця, 23:26 28.08.2009
Розмістив сьогодні дану XSS уразливість на Bugzilla Мозіли - Bug 513320.