Використання тегів frameset та iframe для проведення XSS атак

22:39 11.06.2013

Про оригінальні методи проведення Cross-Site Scripting атак я писав неодноразово, зокрема в статті обхід фільтрів для проведення XSS атак. І зараз я розповім про нові мої розробки в галузі обходу XSS фільтрів.

Ще 08.09.2008, коли я досліджував уразливості у браузерах, я звернув увагу на можливість використання фреймів, яка на той момент не була широко відомою. Можливе використання тегів frameset та iframe для проведення XSS атак, причому в інший спосіб, ніж описано в найбільш відомому переліку технік XSS атак - XSS Cheat Sheet (що раніше розміщувався на сайті RSnake, а зараз він встановив редиректор на XSS Filter Evasion Cheat Sheet від OWASP, яка заснована на його матеріалах).

В той день я перевірив лише в декількох браузерах. А в травні я повернувся до цього старого дослідження і перевірив дану методику в багатьох браузерах (з числа наявних у мене). Як вияснилося придумана мною методика не тільки працює в усіх моїх браузерах, але й обходить деякі обмеження (в декількох браузерах), що стосуються раніше відомих технік атаки.

Якщо раніше при використанні тегів frameset та iframe XSS код розміщувався у властивості src і потрібно було вказувати URI (javascript, vbscript чи data), щоб виконати код. І захисні фільтри (веб додатка чи WAF) могли це виявити - по перевірці на src чи на наявність відповідних URI. То я придумав метод, що дозволяє виконати код іншим чином (і JS/VBS код можна вказати без URI), і це дозволяє обійти подібні захисні фільтри. Мій метод передбачає використання обробника onload для тегів frameset та iframe (тобто атака відбувається подібно до тега body).

Раніше відомі методи (згадані в XSS Cheat Sheet):

<frameset><frame src="javascript:alert(document.cookie)"></frameset>
<iframe src="javascript:alert(document.cookie)">

Працює в усіх моїх браузерах. Але в Mozilla 1.7.x, Chrome та Opera код виконується без доступу до кукісів (причому в Mozilla код виконується в домені null, а в Opera в about:blank).

Придумані мною методи (не згадані в XSS Cheat Sheet ні в 2008, ні в 2013 роках):

<frameset onload="alert(document.cookie)">
<iframe onload="alert(document.cookie)">

Працює в усіх моїх браузерах. Зокрема в Mozilla 1.7.x, Mozilla Firefox 3.0.19, 10.0.7 ESR, 15.0.1, Internet Explorer 6, 7, 8, Chrome 1.0.154.48, Opera 10.62. І з доступом до кукісів в усіх браузерах.


Одна відповідь на “Використання тегів frameset та iframe для проведення XSS атак”

  1. MustLive каже:

    You can read this article on English in The Web Security Mailing List: Using of tags frameset and iframe for conducting XSS attacks.

Leave a Reply

You must be logged in to post a comment.