Xss вразливість приклади. Що собою являє XSS-уразливість. Особливості пасивної і активної уразливості

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

Що таке XSS-атака

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

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

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

Відображена XSS-атака

Спрацьовує при переході користувача по спеціально підготовленої посиланням, яка відправляє запит на сайт з уразливістю. Дана уразливість зазвичай є результатом недостатньої фільтрації вхідних запитів, що дозволяє маніпулювати функціями і активувати шкідливі скрипти.

  1. Зловмисник впроваджує в гіперпосилання шкідливий скрипт, який дозволяє переглядати cookies користувальницької сесії, і відправляє жертві по електронній пошті або іншим засобам комунікації.
  2. При переході по посиланню користувач стає захопленим.
  3. Скрипт виконується в браузері користувача.
  4. Браузер відправляє cookies зловмисникові, забезпечуючи доступ до особистих даних користувача.

Збережена XSS-атака

Для успішного виконання збереженої атаки зловмисникові досить знайти вразливість на сайті і розмістити на своєму сервері шкідливий скрипт. Потім на сайті розміщується тег. Користувачі, які відвідують веб-сторінку, отримають наступну HTML-сторінку.

Most recent comment

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

Важливе зауваження: -xss-вразливість може існувати тільки якщо корисне навантаження (шкідливий скрипт), який зловмисник вставляє, в кінцевому рахунку обробляється (як HTML в даному випадку) в браузері жертви

Що може зробити зловмисник з JavaScript?

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

Однак, з огляду на, що JavaScript має доступ до наступного, легше зрозуміти, що творчі зловмисники можуть отримати з JavaScript.

Шкідливий JavaScript має доступ до всіх тих же об'єктів, що і решта веб-сторінки, включаючи доступ до cookies. Файли cookie часто використовуються для зберігання маркерів сеансів, якщо зловмисник може отримати файл cookie сеансу користувача, він може уособлювати цього користувача.

JavaScript може використовувати XMLHttpRequest для відправки http-запитів з довільним змістом в довільних напрямках.

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

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

Хіба міжсайтовий скрипти не проблема користувача?

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

Анатомія межсайтовой скриптовой атаки

Для Xss-атаки потрібні три учасники: сайт, жертва і нападник. У наведеному нижче прикладі передбачається, що метою зловмисника є видача себе за жертву шляхом крадіжки куки жертви. Відправка файлів cookie на сервер зловмисника може бути здійснена різними способами, одним з яких є виконання наступного коду JavaScript в браузері жертви за допомогою вразливості XSS.

На малюнку нижче показано покрокове керівництво по простій атаці XSS.

  • Зловмисник вводить корисні дані в базу даних веб-сайту, відправляючи вразливу форму за допомогою шкідливого коду JavaScript
  • Жертва запитує веб-сторінку з веб-сайту
  • Веб-сайт служить браузеру жертви сторінка з корисним навантаженням зловмисника як частина тіла HTML.
  • Браузер жертви виконуватиме шкідливий скрипт всередині тіла HTML. У цьому випадку він відправить куки жертви на сервер зловмисника. Наразі зловмисник повинен просто витягти файл cookie жертви, коли HTTP-запит надходить на сервер, після чого зловмисник може використовувати вкрадений файл cookie жертви.
Деякі приклади скриптів межсайтовой атаки

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

тег

При xss ін'єкція може бути доставлена \u200b\u200bвсередину тега за допомогою onload атрибута або іншим більш темним атрибутом, таким як background.

тег Деякі браузери будуть виконувати JavaScript, коли він знаходиться в .