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:

Окрім 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.


3 відповідей на “Cross-Site Scripting уразливості в Mozilla та Firefox”

  1. MustLive каже:

    Як я сьогодні перевірив, Mozilla Firefox 3.0.13 також уразливий.

  2. MustLive каже:

    Як я написав в своїй статті 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.

  3. MustLive каже:

    Розмістив сьогодні дану XSS уразливість на Bugzilla Мозіли - Bug 513320.

Leave a Reply

You must be logged in to post a comment.