Пост-експлуатація xss просунуті методи і способи захисту

Пост-експлуатація xss просунуті методи і способи захисту

З появою технологій розробки багатофункціональних веб-додатків і збільшення числа веб-сервісів зросла кількість вразливостей в цих додатках. Міжсайтовий скриптинг (Cross Site Scripting, CSS або частіше використовується абревіатура XSS) один з найбільш поширених типів атак за допомогою впровадження коду.

Адвітія Агравал (Adwiteeya Agrawal), Критика Собті (Kritika Sobti), обидва студенти, кафедра Інформаційних Технологій, Технологічний інститут Махараджа Сураджмал Нью-Делі, Індія, [email protected], [email protected];

Анотація - XSS (міжсайтовий скриптинг) - вразливість в веб-додатку, коли кінцевий користувач може передавати прості скрипти як корисні навантаження (payloads) через необроблювані вхідні параметри. Подібний тип вразливостей існує вже досить давно, проте наша поточна задача - подальше використання виявлених вразливостей. Ця концепція відома як «Пост-експлуатація XSS», і саме на ній сфокусовано увагу в цій статті. В даному документі представлено поглиблене дослідження загроз XSS-вразливостей і спрощене їх застосування. Також показані варіанти захисних дій від XSS-атак, які можуть бути застосовані в якості запобіжних заходів. Далі ми використовуємо одну з вразливостей і розробимо новий модуль на базі однієї з популярних утиліт для XSS-атак. Цей модуль можна використовувати для виклику через SIP-протокол (Session Initiation Protocol, протокол встановлення сеансу). Модуль був розроблений для нового релізу фреймворка XSSF.

Ключові слова: XSS, Post-XSS, Атаки, Засоби захисту.

2. Популярні утиліти для знаходження та експлуатації XSS-вразливостей

У цьому розділі ми коротко розглянемо кілька популярних фреймворків для знаходження XSS-вразливостей в веб-додатках і їх подальшого використання. Вони инжектируются корисні навантаження (payloads) і виконують скрипти на вразливою сторінці.

Незважаючи простоту Xenotix, утиліта має кілька обмежень. Наприклад, дані по натиснутих клавіш можуть збиратися тільки на інфікованої сторінці, а при завантаженні файлів на комп'ютер користувача можуть запускатися тільки 16-бітові виконувані файли. До того ж, у користувача кожного разу при завантаженні файлу або атаці через зворотний оболонку спливають повідомлення, оскільки додаток використовує самоподпісанного аплети.

З одного боку XSSF пропонує безліч методів для XSS-атак, проте не надає великої кількості методів для знаходження XSS-вразливостей. Також для роботи з XSSF попередньо необхідно ознайомитися з Metasploit.

BeFF підчіплює (hook) один або кілька браузерів для запуску певних модулів управління і наступних атак проти системи зсередини контексту браузера (browser context). У різних браузерів, мабуть, є різні контексти безпеки, до кожного з яких можна застосувати свій унікальний набір атак. Фреймворк дозволяє тестувальника безпеки вибрати певні модулі (в режимі реального часу) для кожного браузера і, відповідно, кожного контексту.

BeFF - потужна утиліта для виконання різних атак, що експлуатують XSS-уразливість, наприклад, browser fingerprinting (збір інформації про браузер), утримування захопленого браузера (persistence), збір інформації про мережу, робота з DNS (DNS enumeration), сканування портів і IRC NAT Pinning і т. д.

Існує три види XSS-атак:

  • Непостійні (відображені).
  • Постійні (збережені).
  • Локальні (засновані на DOM-моделі);

Всі уразливості веб-сторінок і веб-додатків можуть бути віднесені до одного з трьох видів, згаданих вище. Кожен з видів атак описується нижче за допомогою діаграм, які наочно показують процес детектування і реалізації XSS-атаки.

Пост-експлуатація xss просунуті методи і способи захисту

Малюнок 1: Типовий сценарій непостійній (відображеної) XSS-атаки

Пост-експлуатація xss просунуті методи і способи захисту

Малюнок 2. Типовий сценарій постійної (збереженої) XSS-атаки

Постійні (збережені) атаки (див. Рис. 2) мають найбільший потенціал. При таких атаках шкідливих код зберігається на сайті (в базі даних, файлової системи або в іншому місці), а потім відображаються відвідувачеві веб-сторінки без кодування з використанням спеціальних символів HTML. Наприклад, на форумах користувачі можуть публікувати повідомлення форматі HTML.

Пост-експлуатація xss просунуті методи і способи захисту

Малюнок 3. Типовий сценарій атаки, заснованої на DOM

Локальні XSS-атаки або атаки, засновані на DOM, полягають в тому, що зловмисник змінює дані на стороні клієнта під час запиту сторінки з сервера.

4. Пост-експлуатація XSS-вразливостей

4.1 Крадіжка даних в Android

4.2 Некоректна URI-схема і вбудований Webkit-браузер Скайпу в iOS

4.3 Використання HTML5 API для междоменной викликів

4.4 Управління Ajax-історією в HTML5

4.5 Доступ до елементу управління WScript ActiveX в Internet Explorer

4.6 File API в HTML5

4.7 Використання XSS-уразливість для визначення координат

4.8 NAT PINNING - IRC через HTTP

4.9 Використання експлойтів для браузерів

При таких атаках можна, наприклад, експлуатувати стек браузера і запускати шкідливий шелл-код або відкривати meterpreter-сесію, використовуючи експлоїти, що порушують цілісність інформації в пам'яті в зв'язці з XSS. Решта експлоїти можуть повертати meterpreter-сесію без безпосереднього впливу на стек браузера. Наприклад, самоподпісанний java-аплет можна використовувати для завантаження і виконання шкідливих виконуваних файлів.

5. Новий модуль для реалізації XSS-атаки

У цьому розділі ми представимо новий модуль на базі XSSF (cross site scripting framework).

5.1 Концепт модуля

Тут ми розповімо про концепцію нового модуля, який буде створений на базі XSSF і буде експлуатувати XSS-уразливість для здійснення дзвінка по протоколу VoIP.

Згідно з його інформацією, вразливість міститься в файлі www / html / recordings / misc / callme_page.php. За допомогою цієї уразливості SIP-клієнт може викликати певне розширення. Ми розробили модуль, який експлуатує дану уразливість і викликає розширення, для фреймворка XSSF на мові Ruby. Під час запуску модуля жертва бачить підказку з викликом.

Коли користувач відвідує сторінку, яка вже скомпрометована зловмисником, воно відображатиметься в списку на панелі в XSSF-фреймворку. Якщо у жертви встановлено з'єднання з сервером за допомогою SIP-клієнта, зловмисник може запустити цей модуль і реалізувати атаку.

Пост-експлуатація xss просунуті методи і способи захисту

Малюнок 4. Скріншот після виконання модуля

5.2.1 Ініціалізація модуля

Пост-експлуатація xss просунуті методи і способи захисту

Малюнок 5. Ініціалізація модуля

5.2.2 Скрипт, що посилається жертві

Пост-експлуатація xss просунуті методи і способи захисту

Малюнок 6. Скрипт, що посилається жертві

5.3 Етапи виконання атаки

Загальна схема атаки виглядає так:

6. Способи захисту від XSS-вразливостей

6.1 Захист на стороні сервера

6.2 Захист на стороні клієнта

7. Висновки та ідеї для подальшої роботи

У 21 столітті веб-додатки стали невід'ємною частиною нашого життя. Однак часто вони є вразливими до певних атакам. В даному документі ми розглянули один з видів вразливостей і способи їх подальшої експлуатації. XSS-атаки є переважаючими серед атак, коли відбувається впровадження коду, і уразливості, що дозволяють здійснювати подібні дії, можуть стати основою потужних експлойтів. У більш серйозних атаках XSS може поєднуватися з використанням інших типів вразливостей. У даній статті ми розглянули деякі найбільш поширені атаки. Ми привели список утиліт для знаходження XSS-вразливостей і їх подальшої експлуатації, а також познайомили вас з основними функціями цих утиліт. Потім ми розглянули різні види XSS-атак разом з концепцією кожної з них. Ми розробили новий модуль на основі XSSF, який здійснює VoIP-дзвінки. Код самого модуля разом з базовою концепцією і алгоритмом роботи також представлений в цій статті. У передостанньому розділі ми розглянули деякі способи захисту від XSS, які можуть бути реалізовані як на стороні сервера, так і на стороні клієнта. У міру появи нових додатків і функцій, будуть з'являтися нові уразливості і види атак. Ми маємо намір продовжити цю роботу, комбінуючи критичні уразливості разом XSS і створюючи нові модулі, які можуть бути використані іншим програмним забезпеченням і фреймворками.

Схожі статті