Cross-Site Scripting уразливості в Mozilla, Firefox та Chrome
23:55 11.07.2009В минулому місяці я писав про Cross-Site Scripting уразливості в Mozilla, Internet Explorer, Opera та Chrome. Яка дозволяє виконання JavaScript коду через заголовок refresh (зазначу, що подібну атаку також можна реалізувати через інший вектор - через meta-refresh тег). Дана уразливість була виправлена Мозілою в Firefox 3.0.9.
Так от нещодавно, 06.07.2009, я знайшов можливість обходу даного захисту в Firefox. Також даний метод XSS атак працює в Mozilla та Chrome.
Для обходу захисту від виконання JavaScript коду через заголовок refresh потрібно використати data: URI, в якому буде вже міститися необхідний JS код. Цей метод для проведення XSS атак через meta-refresh тег вже давно відомий - він був в XSS Cheat Sheet ще в 2006 році. І от його я використав для обходу захисту в Firefox та для проведення атак через refresh-header редиректори.
XSS:
Вектори атаки через meta-refresh тег та заголовок refresh:
<meta http-equiv="refresh" content="0;url=data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+">
При запиті до скрипта на сайті:
http://site/script.php?param=data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ%2b
Що поверне у відповіді заголовок refresh і код виконається у браузері:
refresh: 0; URL=data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ%2b
Через data: можна обійти в Firefox 3.0.9 і вище (тестував в 3.0.11) заборону на виконання JavaScript коду в заголовку refresh. Тільки в Firefox 3.0.11 і Google Chrome таким чином до кукісів не дістатися, зате це можна зробити в старій Mozilla.
Уразлива версія Mozilla 1.7.x та попередні версії.
Уразлива версія Mozilla Firefox 3.0.11 (і 3.5 також повинен бути уразливим) та попередні версії.
Уразлива версія Google Chrome 1.0.154.48 та попередні версії (і потенційно наступні версії).
Неділя, 23:32 12.07.2009
Розмістив сьогодні дану XSS уразливість на Bugzilla Мозіли - Bug 503789.
Середа, 15:17 29.07.2009
Як я сьогодні перевірив, Mozilla Firefox 3.0.12 також уразливий.
Середа, 21:23 05.08.2009
Як я сьогодні перевірив, Mozilla Firefox 3.0.13 також уразливий.
П'ятниця, 15:50 28.08.2009
Як я написав в своїй статті Cross-Site Scripting атаки через редиректори, дана уразливість має місце також в браузерах Google Chrome 2.0.172.28, 2.0.172.37 та 3.0.193.2 Beta, QtWeb 3.0 Build 001 та 3.0 Build 003, Safari 4.0.3, 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.