Статьи

Що собою являє XSS-уразливість

  1. XSS: Уразливість для ін'єкції
  2. Типи XSS-вразливостей
  3. У чому небезпека XSS?

Що таке XSS-уразливість? Чи варто її боятися?

Міжсайтовий скриптинг (скорочено XSS) - широко поширена уразливість, яка зачіпає безліч веб-додатків. Вона дозволяє зловмисникові впровадити шкідливий код в веб-сайт таким чином, що браузер користувача, який зайшов на сайт, виконає цей код.

1. XSS: Уразливість для ін'єкції

2. Типи XSS-вразливостей

3. У чому небезпека XSS?

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

Уявімо, що ми знаходимося в панелі адміністратора WordPress, додаємо новий контент. Якщо ми використовуємо для цього вразливий до XSS плагін, він може змусити браузер створити нового адміністратора, видозмінити контент і виконати інші шкідливі дії.

Міжсайтовий скриптинг надає зловмисникові практично повний контроль над найважливішим програмним забезпеченням в наші дні - браузером.

XSS: Уразливість для ін'єкції

Будь-який веб-сайт або додаток має кілька місць введення даних -пол форми до самого URL. Найпростіший приклад даних, що вводяться - коли ми вписуємо ім'я користувача і пароль в форму:

Малюнок 1. Форма введення даних

Форма введення даних

Наше ім'я буде зберігатися в базі даних сайту для подальшої взаємодії з нами. Напевно, коли ви проходили авторизацію на будь-якому сайті, ви бачили персональне привітання в стилі «Ласкаво просимо, Ілля». Саме для таких цілей імена користувачів зберігаються в базі даних.

Ін'єкцією називається процедура, коли замість імені або пароля вводиться спеціальна послідовність символів, що змушує сервер або браузер відреагувати певним, за потрібне зловмисникові чином.

Міжсайтовий Скриптінг називається ін'єкція, що впроваджує код, який буде виконувати дії в браузері від імені веб-сайту. Це може відбуватися як з повідомленням користувача, так і в фоновому режимі, без його відома.

Малюнок 2. Наочна схема міжсайтового скриптинга

В якості найпростішого прикладу можна навести елементарний скрипт, який показує вікно з повідомленням. Виглядає він приблизно так:

Таблиця 1. Скрипт, що викликає спливаюче вікно

<Script> alert ( 'ЦЕ XSS- Вразливість !!!') </ script>

Даний скрипт викликає вікно з написом «ЦЕ XSS-Вразливість !!!». Браузер користувача сприймає і виконує цей скрипт як частина легітимного коду сайту.

Типи XSS-вразливостей

Не всі уразливості XSS однакові, їх існує безліч типів. Тут перераховані типи і способи їх взаємодії:

Малюнок 3. Типи XSS-вразливостей

Типи XSS-вразливостей

Уразливості, викликані кодом на стороні сервера (Java, PHP, .NET і т. Д.):

Традиційні XSS-атаки:

  1. Відображені (непостійні). Відображена XSS-атака спрацьовує, коли користувач переходить по спеціально підготовленої посиланням. Ці уразливості з'являються, коли дані, надані веб-клієнтом, найчастіше в параметрах HTTP-запиту або у формі HTML, виконуються безпосередньо серверними скриптами для синтаксичного аналізу і відображення сторінки результатів для цього клієнта, без належної обробки.
  2. Збережені (постійні). Збережені XSS можливі, коли зловмисникові вдається впровадити на сервер шкідливий код, що виконується в браузері кожен раз при зверненні до оригінальної сторінці. Класичним прикладом цієї уразливості є форуми, на яких дозволено залишати коментарі в HTML-форматі.

Уразливості, викликані кодом на стороні клієнта (JavaScript, Visual Basic, Flash і т. Д.):

Також відомі як DOM-моделі:

  1. Відображені (непостійні). Те ж саме, що і у випадку з серверної стороною, тільки в цьому випадку атака можлива завдяки тому, що код обробляється браузером.
  2. Збережені (постійні). Аналогічні збереженим XSS на стороні сервера, тільки в цьому випадку шкідлива складова зберігається на стороні клієнта, використовуючи сховище браузера.

Уразливості, викликані інфраструктурою (браузер, плагіни, сервера і т. Д.):

Зустрічаються дуже рідко, але є більш небезпечними:

  1. Інфраструктура на стороні клієнта. Відбувається, коли шкідлива складова виробляє будь-які маніпуляції з функціоналом браузера, наприклад з його XSS-фільтром і т.п.
  2. Інфраструктура на стороні сервера. Виникає, коли веб-сервер некоректно обробляє запити, дозволяючи модифікувати їх.
  3. Мережа. Відбувається, коли можливо потрапити в зв'язок між клієнтом і сервером.

Уразливості, викликані користувачем:

  1. Само-XSS. Часто відбувається в результаті соціальної інженерії, коли користувач випадково запускає шкідливий код в своєму браузері.

У чому небезпека XSS?

Як можна захистити свій сайт від XSS? Як перевірити код на наявність уразливості? Існують технології на кшталт Sucuri Firewall, спеціально розроблені для того, щоб уникнути подібних атак. Але якщо ви розробник, ви, безумовно, захочете дізнатися докладніше, як ідентифікувати і усунути XSS-уразливість. Про це ми поговоримо в наступній частині статті, присвяченій XSS.

Що таке XSS-уразливість?
Чи варто її боятися?
3. У чому небезпека XSS?
У чому небезпека XSS?
Як можна захистити свій сайт від XSS?
Як перевірити код на наявність уразливості?

Новости