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, допоможе обачність користувача (потрібно відвідувати надійні ресурси) та оновлення браузера до останньої версії.


Одна відповідь на “MouseOverJacking атаки”

  1. MustLive каже:

    You can read this article on English: MouseOverJacking attacks.

Leave a Reply

You must be logged in to post a comment.