Майбутнє XSS атак

22:46 15.01.2010

У випадку коли для Cross-Site Scripting атаки на сайті не можна використати жодні теги і кутові дужки, можна провести XSS атаку з використанням властивостей тегів. Це може бути властивість style, або різні обробники подій (або іноді можна провести атаку через властивість src). Для атаки потрібно використати лапки (одинарні чи подвійні, або іноді навіть лапки не потрібні), щоб додати нову властивість тегу, в який вдалося включити код.

При атаці через властивість style використуються наступні методи (при яких код виконується автоматично при завантаженні сторінки):

1. Через expression(), що працює лише в браузерах IE (до IE8).
2. Через background:url() чи background-image:url(), що працює лише в браузерах IE.
3. Через -moz-binding:url(), що працює лише в Mozilla Firefox та інших браузерах на движку Gecko (до Firefox 3).

Приклади атак з expression() і -moz-binding ви можете побачити у випадку уразливостей на www.ibm.com.

При атаці через обробники подій використуються наступні методи:

1. Через onMouseOver, onfocus, onblur, onselect, onchange, onclick та інші події (при яких код виконується при відповідній події).
2. Через onerror, onload, onunload (при яких код виконується автоматично при відкритті сторінки, або її закритті у випадку події onunload).

Можливість використовувати onerror, onload і onunload трапляється не дуже часто, а інші обробники спрацьовують не автоматично, тому менш популярні при проведенні XSS атак. Найбільш часто використовуються саме атаки через властивість style.

Але ще в 2008 році в Firefox 3 була прибрана можливість атаки через -moz-binding (прибрана частково - можна атакувати лише з використанням xml-файлів на тому ж сайті). Про що я писав в статті XSS атаки в Mozilla Firefox через стилі. А в Internet Explorer 8, що вийшов на початку 2009, прибрана підтримка expression(). Підтримка javascript та vbscript URI в background та background-image також може бути з часом прибрана.

Тому в світлі даних подій в нових браузерах стало важче проводити автоматизовані XSS атаки у таких випадках (коли не можна використати жодні теги і кутові дужки). І чим більш поширеними стануть дані версії браузерів, тим важче буде проводити XSS атаки в даних умовах (щоб вини були автоматизовані, без необхідності користувачу виконувати деякі дії). З іншої сторони, такі браузери як Opera, Chrome та інші браузери зовсім не піддаються атакам через властивість style.

Для вирішення цієї задачі може використовуватися техніка MouseOverJacking, про яку я вже писав. Дана техніка дозволяє провести автоматизовану XSS атаку. Причому це кросбраузерне рішення, що працює в усіх браузерах. В тому числі в IE8 - при використанні CSS (як у моїх PoC) вона дозволяє обійти вбудований захист IE8 від Clickjacking.

Тобто MouseOverJacking може використовуватися не тільки для специфічних атак, про які йшлося в статті про дану техніку, а для широкого кола XSS атак (замість expression() і -moz-binding). Причому атака повністю автоматизована, тобто ефективність атаки така сама як і у expression() і -moz-binding (а за рахунок кросбраузерності можна атакувати навіть більше користувачів).

Подібні атаки можна проводити як через MouseOverJacking, так і через Clickjacking. Але у MouseOverJacking вища ефективність, тому що при Clickjacking атаці жертва повинна зробити клік (що може відбуватися не завжди), а при MouseOverJacking не потрібно робити жодних дій, лише один рух мишкою (що відбудеться завжди).

Приклади PoC для Cross-Site Scripting уразливостей.

Для reflected XSS:

http://site/script?param=%22%20style=%22width:100%;height:100%;display:block;position:absolute;top:0px;left:0px%22%20onMouseOver=%22alert(document.cookie)%22

Для persistent XSS:

<a href="#" style="width:100%;height:100%;display:block;position:absolute;top:0px;left:0px" onMouseOver="alert(document.cookie)">&nbsp;</a>

Так що я пропоную використовувати техніку MouseOverJacking для широкого кола XSS атак (у випадку неможливості використання тегів і кутових дужок). І секюріті професіонали і нападники можуть використовувати дану техніку для створення PoC для XSS уразливостей чи для проведення XSS атак.


Одна відповідь на “Майбутнє XSS атак”

  1. MustLive каже:

    You can read this article on English: The future of XSS attacks.

Leave a Reply

You must be logged in to post a comment.