Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

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

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

Автори: Нішта Джатаю (Nishtha Jatana) - доцент, кафедра Інформатики та Проектування, Технологічний інститут Махараджа Сураджмал (Maharaja Surajmal Institute of Technology), Нью-Делі, Індія, [email protected] ;

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

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

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

1. Введення

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

XSS-уразливість (Cross-site Scripting (XSS) - OWASP, див. Посилання) існують вже досить давно. Детальний опис XSS можна знайти в огляді Shanmugam і Ponnavaikko від 2008 року (див. Розділ Посилання). У статті основний акцент робиться на пост-експлуатацію XSS-вразливостей, тобто атаках, які можуть бути проведені після знаходження уразливості або в поєднанні з пошуком подібних вразливостей. У Розділі 2 ми розповімо про основні функції деяких корисних і популярних утиліт, використовуваних для знаходження XSS-вразливостей і виконання XSS-атак. У Розділі 3 ми класифікуємо XSS-атаки (постійні (збережені), непостійні (відображені), засновані на DOM-моделі). У Розділі 4 будуть описані деякі з останніх і найбільш цікавих вразливостей знайдених в веб-додатках, а також методи їх використання. У Розділі 5 ми перерахуємо кілька захисних засобів, які можна реалізувати як на стороні сервера, так і на стороні клієнта для захисту веб-сторінки або додатки від XSS-уразливість. У Розділі 6 ми представимо концепцію і код нового модуля, розробленого для викликів через протокол VoIP (Voice over Internet Protocol), використовуючи XSS-уразливість. В кінці ми підведемо підсумки і представимо ідеї і думки для подальшої роботи в цій галузі.

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

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

2.1 Xenotix

Xenotix (Abraham, 2012 см. Розділ Посилання), по суті, є утилітою для тестування на проникнення в систему, що використовується для пост-експлуатації XSS-вразливостей. У його базі є понад 450 корисних навантажень, включаючи навіть такі, які можуть обійти основні XSS-фільтри, які використовуються для захисту веб-розробниками. Корисні навантаження можна використовувати як в ручному, так і в автоматичному режимі. Можна, наприклад, збирати дані вводяться користувачем на інфікованої сторінці або завантажувати шкідливі виконувані файли на комп'ютер жертви без її відома. Коли користувач потім переглядає інфіковану сторінку, java-аплет client.jar отримає доступ до командного рядка його системи. Для підтримки команди echo, в файл winconfig.vbs (файл скриптів Visual basic) в директорію temp (% temp%) записуються скрипти, а потім cmd.exe запускає windonfig.vbs, який завантажить шкідливий виконуваний файл певний зловмисником в URL. Далі відбудеться перейменування файлу в update.exe і його запуск. Ще один експлоїт, пропонований Xenotix, - установка зворотного оболонки (reverse shell) (Hammer, 2006, див. Розділ Посилання) на комп'ютер жертви для отримання доступу до його системі.

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

2.2 XSSF

Метою проекту XSSF є виявлення потенційних загроз, пов'язаних з XSS-уразливими (Tomes, 2011 і xssf - Cross-Site Scripting Framework - Google Project Hosting; див. Посилання). Основна функція полягає в створенні комунікаційного каналу (або XSSF-тунелю) з браузером Жерве (у якого є XSS уразливість) для виконання різних атак, кожна з яких оформлена окремим модулем. Існує величезна кількість модулів, наприклад, для крадіжки файлів, викликів по Скайпу з iphone, сканування мережі та багато інших, які можуть бути реалізовані для експлуатації вразливих веб-додатків.

Основний механізм роботи XSSF - створення тунелю, включаючи список всіх id жертви в той момент, коли користувач заходить на сторінку з XSS-вразливістю. Потім зловмисник визначає браузер користувача, шукає підходящий експлоїт і налагоджує сеанс роботи з жертвою. Наразі зловмисник може отримати доступ до комп'ютера користувача. Більш просунутий метод: зловмисник створює XSSF-тунель і отримує доступ до локального хосту з віддаленої машини, а потім користується всіма його функціями. Також, використовуючи XSSF, інтегрований з консоллю Metasploit (Offensive Security Ltd., 2012 см. Розділ Посилання) можна використовувати експлоїт для браузера на сайті з XSS-вразливістю для отримання meterpreter-сесії, а потім і повного доступу до системи. Ще одна особливість XSSF - так звана «атака на автоматі», коли автоматично по черзі виконуються кілька експлойтів після заходу жертви на вразливу сторінку.

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

2.3 BeFF

Beef (Home · beefproject / beef Wiki · GitHub, 2006, див. Розділ Посилання) або Browser Exploitation Framework є потужною утилітою для браузера, за допомогою якої можна робити тестування на проникнення в систему. У додатку використовуються різні методи для оцінки безпеки цільової середовища. Фреймворк складається з модулів управління, що використовують просту і в той же час потужну систему API, що робить всю систему досить ефективною. Також є можливість розробки призначених для користувача модулів.

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

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

3. Типи XSS-атак

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

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

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

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

Непостійні (відображені) атаки (див. Рис. 1) здійснюються, коли дані надаються веб-клієнтом тут же використовуються серверними скриптами для генерації сторінки з результатами для цього самого клієнта. Якщо призначені для користувача дані є некоректними і містяться всередині сторінки з результатами без кодування HTML - це дозволяє потрапити клієнтського коду в динамічну сторінку. Тепер інжектовані код може бути виконаний на стороні сервера, наприклад, на сторінці з пошуковими результатами або на сторінці з помилкою або будь-який інший сторінці, яка з'являється у відповідь на запит користувача. Ця сторінка буде включати в себе частину вхідних даних, що передаються сервера як частина запиту. Непостійні атаки можуть бути реалізовані не тільки на веб-сторінках, а й, наприклад, при передачі e-mail повідомлень або через сторонній веб-сервер. Коли користувача обманним шляхом змушують натиснути на шкідливе посилання або відправити дані спеціально заповненої форми, інжектіруемого код передається на вразливий веб-сервер, який потім відбивається назад і виповнюється в браузері жертви, оскільки дані надходять з достовірного сервера.

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

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

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

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

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

Наприклад, якщо ділянка коду JavaScript має доступ до параметру URL і формує якийсь HTML-код на сторінці, використовуючи цю інформацію, що не закодована з використанням спецсимволов HTML - можливо, присутній XSS-діра, оскільки записані дані будуть заново інтерпретовані браузерами, так як HTML-код може містити додатковий клієнтський скрипт.

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

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

Уразливість, описана тут (Cannon, 2013, див. Розділ Посилання), присутній у фреймворку Android версії 2.2. Пролом може бути використана для отримання доступу до файлів на SD-картки у пристрої на платформі Android. Браузер в Android не виводить ніяких повідомлень, в той час як файл, наприклад, «payload.html» автоматично завантажується в / sdcard / download / payload.html. Можна використовувати JavaScript для автоматичного відкриття цього файлу, що призведе до того, що браузер оновить локальний файл і дозволить скрипту отримати доступ до файлів, що зберігаються на SD-карті. Далі можна передати вміст файлів назад на інфікований веб-сайт. Будучи простим експлоїтом, що використовують JavaScript і редіректи, він може вражати телефони з різними версіями Android. Однак у нього є деякі обмеження. Наприклад, необхідно заздалегідь знати ім'я і шлях до файлу, до якого ми хочемо отримати доступ. Оскільки експлоїт не підвищує привілеї в системі, з його допомогою можна отримати доступ тільки до файлів на SD-карті.

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

Ця вразливість (більш детально описана в Kumar, 2011 року; Purviance, 2011 року; iPhones Make Automatic Skype Calls | Security Generation 2010; див. Розділ Посилання) існує в фреймворку iOS. Її можна використовувати для отримання доступу до бази даних SQLite адресної книги або здійснювати дзвінки за допомогою Скайпу. Скайп, розроблений для iOS, використовує локальний HTML-файл для відображення повідомлень від інших користувачів. Проблема полягає в тому, що додаток некоректно кодує інформацію, що міститься в полі «Full Name», що дозволяє зловмисникові сформувати шкідливий JavaScript-код, який запуститься, коли жертва буде переглядати повідомлення.

Ще одна проблема криється у вбудованому браузері на базі Webkit, який використовується Скайпом. Розробники додали URI-схему «file: //», що дозволяє зловмисникові отримати доступ до файлової системи і прочитати будь-який файл, доступний в пісочниці iOS (iOS application sandbox). Користуючись лояльною політикою безпеки для сторонніх додатків, які можуть виконувати певні дії, використовуючи URL або URI-схему, зловмисник може вбудувати в веб-сторінку прихований iframe, за допомогою якого можна здійснювати дзвінки в Скайпі (якщо, звичайно, він встановлений в системі). JavaScript виглядає приблизно так: <iframe src = "skype: // 1900expensivepremium

number? call "> </ iframe>.

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

Цю вразливість можна використовувати тільки для систем на базі Windows (Kuppan 2010, див. Розділ Посилання). У HTML5 API є два способи для здійснення междоменной викликів: Cross Origin Requests і WebSockets. Використовуючи ці механізми і JavaScript можна з'єднатися з будь-яким IP-адресою і будь-яким портом (за винятком заблокованих), що робить ці технології ідеальними для створення сканера портів. Можна, наприклад, визначити чи є порт відкритим, закритим або перебувають під фільтром. Для цього існують два властивості: «ready state», яке відображає статус з'єднання в певний момент часу і «time duration», яке відображає часовий інтервал знаходження в стані «ready state».

Таким чином, спостерігаючи за змінами стану, ми можемо визначити тип порту. Оскільки наш сканер працює на рівні додатку, успіх сканування залежить від софта, встановленого на цільовому хості. Коли надсилається запит певного додатка, воно зчитує його, але нічого не відповідає, зберігаючи сокет відкритим, і, можливо, очікує додаткові вхідні запити або запити в певному форматі. В цьому випадку статус визначити неможливо. Оскільки можна впізнати навіть закриті порти, ми можемо сканувати всю мережу, а також визначати внутрішні IP-адреси.

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

Про цю уразливість розказано в (Kotowicz 2010, див. Розділ Посилання). У HTML5 є функція window.history.pushState (), яка дозволяє отримувати доступ до сторінок і посиланнях без зміни URL. Ця функція створена для AJAX-сайтів для більш простого внесення змін в адресному рядку (window location bar) і управління історією. Подібний механізм дуже зручний для розробників: наприклад, тепер в AJAX-додатках може бути легко реалізована підтримка кнопок Назад / Уперед без використання трюків з ідентифікатором # в URI-фрагментах. Однак якщо веб-сайт має XSS-уразливість, зловмисник може перенаправляти користувачів без будь-яких змін в адресному рядку.

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

Налаштування безпеки в Internet Explorer дозволяють отримати доступ елементу управління WScript ActiveX через JavaScript і VBScript. У найпростішому додатку показується як за допомогою об'єкта "WScript.shell" ActiveX можна взаємодіяти з клієнтською машиною (Spitzen, 2008, див. Розділ Посилання). За допомогою цього елемента керування можна виконувати команди, як і в командному рядку, без оповіщення користувача. Використовуючи Shell, можна створювати, видаляти або змінювати текстові файли через WScript.FileSystemObject. У IE7 з'явилася нова настройка безпеки «Дозволено доступ до джерел даних через домен» (Access data sources across domain), і тепер за замовчуванням відбувається оповіщення користувача, чи хоче він дозволити скрипту «поспілкуватися» з іншими доменами (файлова система розглядається як окремий домен) . Однак можна створити і запустити скрипт прямо на диску і, відповідно, обійти ці обмеження.

4.6 File API в HTML5

Ця вразлівість існує в движку Webkit (остання версія Google Crome), и может використовуват для использование браузера Google Crome як файловий сервер. File API в HTML5 дозволяє JavaScript отріматі доступ до файлу в момент Вибори его користувачем (перед закачуванням). Кроме Поліпшення інтерфейсу закачування, Сейчас Механізм может буті використаних для крадіжкі файлів во время XSS-атаки. Ви можете створити прихований елемент input type = file, так що користувач, сам того не відаючи, почне завантажувати файл. У цьому випадку файл, вибраний користувачем в діалоговому вікні Відкрити, є єдиним, до якого можна отримати доступ. Хоча input type = file directory - прекрасна можливість, що дозволяє користувачеві завантажувати вміст обраної директорії, до якої може отримати доступ зловмисник.

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

Компанія Google крім збору даних для Google Street View також збирала дані про бездротові мережі і MAC-адресах роутерів цих мереж, а потім визначала їх GPS-координати. Як описано в (Higgins, 2010 см. Розділ Посилання), XSS-експлоїт можна використовувати для отримання даних про місцезнаходження користувача. Експлоїт може отримати MAC-адресу роутера жертви, а потім використовувати Google Maps для визначення GPS-координат. Сам по собі роутер і браузер не містять інформацію про місцезнаходження або GPS-дані, проте, коли ви зайдете на шкідливу сторінку, зловмисник через AJAX може отримати MAC-адресу роутера, а потім, використовуючи сервіси Google, дізнатися про ваше місцезнаходження (отримати приблизні GPS -коордінати) на основі отриманого MAC-адреси.

4.8 NAT PINNING - IRC через HTTP

Самі Камкар (Samy Kamkar) розповів про цю уразливість в своїй статті (Kamkar 2010, див. Розділ Посилання). При такій XSS-атаки шкідлива сторінка непомітно змушує роутер або фаєрвол користувача прокинути будь-який порт назад на його машину. Коли жертва клацає по шкідливої ​​посиланням, що містить приховану форму для з'єднання з ресурсом http://attacker.com:6667 (IRC-порт), відбувається сабміт форми без відома користувача. Далі створюється HTTP-з'єднання з (фальшивим) IRC-сервером зловмисника, який знаходиться в режимі очікування. Роутер жертви бачить «IRC з'єднання» (навіть якщо клієнт використовує HTTP-з'єднання) і спробу встановити сесію за допомогою DCC chat. Протокол DCC (Direct Client-to-Client) є суб-протоколом IRC, що дозволяє обмінюватися файлами і текстовими повідомленнями минаючи сервер. Для взаємодії через DCC chat необхідний відкритий локальний порт на клієнтській машині, до якого приєднується віддалений абонент. Оскільки роутер блокує всі вхідні підключення, приймається рішення про перенаправлення всього трафіку на порт DCC chat для того, щоб зловмисник зміг обійти NAT (NAT traversal), з'єднатися і поспілкуватися з жертвою. Однак зловмисник повинен вказати конкретний порт, наприклад, 21-й порт (FTP). Тепер роутер буде виробляти переадресацію з цього порту на систему жертви, і у зловмисника з'являється можливість з'єднатися і зробити атаку.

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

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

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

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

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

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

Elastix PBX (Elastix Freedom to communicate, 2006, див. Розділ Посилання) - PBX-сервер, що дозволяє здійснювати комунікації через протокол VoIP. Додаток доступний для вільного завантаження за адресою http://www.elastix.org /index.php/en/downloads.html. Програмне забезпечення має веб-інтерфейс для конфігурації сервера і доступно з будь-якої машини в мережі. Для отримання доступу до сервера в браузері потрібно вказати адресу https: // IP / (IP - адреса сервера). Наш модуль працює з версією Elastix PBX 2.2. 20 березня 2012 року про XSS-уразливість в веб-інтерфейсі сервера повідомив «Martin Tschirsich».

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

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

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

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

5.2 Код модуля

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

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

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

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

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

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

Необхідно, щоб сервер Elastix 2.2.0 PBX і жертва знаходилися в одній підмережі. Також жертва повинна Законекть до сервера за допомогою SIP-клієнта. Далі зловмисникові необхідно встановити XSSF всередині Metasploit. Спочатку користувач повинен перейти за наступним посиланням (це необхідно для виклику розширення): https: //IP_address_of_Elastix/recordings/misc/callme_page.php? Action = c & callmenum = Extension @ from-internal / h

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

  • Зловмисник (явно або неявно) відсилає жертві посилання уразливого сайту разом зі скриптом для з'єднання з XSSF-сервером.
  • Після того, як жертва перейшла за посиланням, вона відобразиться в списку жертв в XSSF.
  • Потім зловмисник завантажує модуль «Elastix_PBX_voip_call» за допомогою наступної команди: Use auxiliary / xssf / public / misc / Elastix_PBX_voip_call.
  • Зловмисник вводить IP-адреса VoIP-сервера в полі «address» і розширення клієнта в поле «extension» за допомогою наступної команди: set address IP set extension EXT.
  • Модуль запускається, і в браузері жертви створюється iframe, всередині якого знаходиться посилання для виклику, після чого жертва бачить виклик з невідомого номера.

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

У сучасному світі онлайн сервіси набирають все більшої популярності і, відповідно, веб-додатки грають все більш важливу роль. Однак в той же час зростає і кількість уразливості в цих додатках. Сьогодні, коли веб-безпека може бути легко скомпрометована, необхідно робити більше зусиль по захисту від подібних атак. Існують різні способи для запобігання загрозам XSS-атак. Подібні механізми (XSS (Cross Site Scripting) Prevention Cheat Sheet - OWASP 2012, див. Розділ Посилання) можна реалізувати як на стороні сервера, так і на стороні клієнта.

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

Для захисту від XSS-вразливостей розробники можуть зробити різні кроки. Основна концепція: не довіряти вхідних даних (включаючи cookies), посланим користувачем. Перед тим, як відкрити доступ, необхідно провести ретельну перевірку та затвердження. Безпека cookies, як говорилося в статті Роберта Хафнер (Robert Hafner) (Hafner, 2009 см. Розділ Посилання), може бути реалізована шляхом обмеження домену та шляхи для прийнятих cookies, установки параметра HttpOnly, використанням SSL. Ніколи не слід зберігати конфіденційні дані в cookies. Ще один безпечний спосіб: заборонити використання скриптів з боку клієнта сайту. Заголовки Content-Security-Policy також можна використовувати для захисту від використання XSS-експлойтів. Також необхідно кодувати керуючі HTML-символи, JavaScript, CSS і URL'и перш ніж можна буде в браузері. Для фільтрації вхідних параметрів можна використовувати такі функції: filter_sanitize_encoded (для кодування URL), htmlentities (для фільтрації HTML), filter_sanitize_magic_quotes (застосовується функція addslashes ()). Ці фільтри перевіряють вхідні параметри, що посилаються користувачем, JavaScript, POST-запити і запобігають запуску скриптів. Крім цього існує кілька бібліотек, які кодують вхідні дані: OWASP Encoding Project (доступний на Google Code), HTML Purifier або Htmlawed для PHP Anti-XSS Class. Для .Net додатків: AntiSamy API для .Net, для Java: XSS-HTML-Filter.

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

Кінцеві користувачі також можуть зробити певні кроки для захисту від XSS-атак. Наприклад, можна встановити розширення для браузера, які будуть перевіряти поля форм, URL'и, JavaScript і POST-запити, і, якщо зустрічаються скрипти, застосовувати XSS-фільтри для запобігання їх запуску. Приклади подібних розширень: NoScript для FireFox; NotScripts для Crome і Opera. В Internet Explorer 8 для вирішення цього завдання є вбудована функція.

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

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

ПОСИЛАННЯ

(Nd). Retrieved from http://santoshdudhade.blogspot.in/2012/07/xssf-v22-cross-site-scripting-framework.html

Abraham, A. (2012). Detecting and Exploiting XSS with Xenotix XSS Exploit Framework . Retrieved from Club Hack 2012: http://www.clubhack.com/2012/event/technical-briefings/detecting-and-exploiting-xss-with-xenotix-xss-exploit-framework/

Cannon, T. (2013, november 23). Android Data Stealing Vulnerability | thomascannon.net. Retrieved 2013, from thomascannon.net: http://thomascannon.net/blog/2010/11/android-data-stealing-vulnerability/

Cross-site Scripting (XSS) - OWASP. (Nd). Retrieved February 2013, from www.owasp.org: https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29

Elastix Freedom to communicate. (2006). Retrieved from http://www.elastix.org/index.php/en/downloads.html.

Hafner, R. (2009, August). How to create totally secure cookies. Retrieved from teamtreehouse.com: http://blog.teamtreehouse.com/how-to-create-totally-secure-cookies

Hammer, R. (2006). Inside-Out Vulnerabilities, Reverse Shells. Retrieved from www.sans.org: http://www.sans.org/reading_room/whitepapers/covert/inside-out-vulnerabilities-reverse-shells_1663

Higgins, KJ (2010). Hack Pinpoints Victim's Physical Location. Retrieved from http://www.darkreading.com/security/news/222200541/hack-pinpoints-victim-s-physical-location.html

Home · beefproject / beef Wiki · GitHub. (2006). Retrieved from github.com: https://github.com/beefproject/beef/wiki

iPhones Make Automatic Skype Calls | Security Generation. (2010, November 10). Retrieved 2013, from www.securitygeneration.com: http://www.securitygeneration.com/tech/iphones-make-automatic-skype-calls/

Kamkar, S. (2010, January). NAT Pinning: Penetrating routers and firewalls from a web page (forcing router to port forward). Retrieved from http://samy.pl/natpin/

Kotowicz, K. (2010, November). THE WORLD. ACCORDING TO KOTO. Retrieved from blog.kotowigz.net: http://blog.kotowicz.net/2010/11/xss-track-got-ninja-stealth-skills.html

Kumar, M. (2011, September 20). iPhone Skype XSS Vulnerability Lets Hackers Steal Phonebook [Video] - Hacking News. Retrieved 2013, from thehackernews.com: thehackernews.com/2011/09/iphone-skype-xss-vulnerability-lets.html

Kuppan, L. (2010). Port Scanning with HTML5 and JS-Recon. Retrieved from http://blog.andlabs.org: http://blog.andlabs.org/2010/12/port-scanning-with-html5-and-js-recon.html

Offensive Security Ltd. (2012). Introduction - Metasploit Unleashed. Retrieved from www.offensive-security.com: http://www.offensive-security.com/metasploit-unleashed/Introduction

Purviance, P. (2011, September 19). XSS in Skype for iOS «Superevr. Retrieved from superevr.com: https://superevr.com/blog/2011/xss-in-skype-for-ios/

Shanmugam, J., & Ponnavaikko, DM (2008). Cross Site Scripting-Latest developments and solutions: A survey. International Journal of Computational Mathematics, 1 (2). Retrieved from http://www.emis.de/journals/IJOPCM/files/IJOPCM(Vol.1.2.2.S.08).pdf

Spitzen, I. (2008). Using WScript.shell to interact with the Client machine. Retrieved from http://www.visualwebgui.com/Developers/KB/tabid/654/article/using_wscript_shell_to_interact_with_the_client_machine_by_mark_reed/Default.aspx

Tomes, T. (2011, July). PaulDotcom. Retrieved from http://pauldotcom.com/2011/07/xssf-expanding-the-attack-surf.html

XSS (Cross Site Scripting) Prevention Cheat Sheet - OWASP. (2012). Retrieved February 2013, from www.owasp.org: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

xssf - Cross-Site Scripting Framework - Google Project Hosting. (Nd). Retrieved February 2013, from code.google.com: http://code.google.com/p/xssf/

Php?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.