Clickjacking
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси за допомогою найбільш продвинутих інструментів спільноти у світі. Отримайте доступ сьогодні:
Що таке Клікджекінг
Під час атаки клікджекінгу користувача обманюють, щоб він клацнув на елемент веб-сторінки, який або невидимий, або прикритий під інший елемент. Ця маніпуляція може призвести до непередбачуваних наслідків для користувача, таких як завантаження шкідливого програмного забезпечення, перенаправлення на шкідливі веб-сторінки, надання облікових даних або конфіденційної інформації, переказ коштів або онлайн-покупки продуктів.
Хитрість з попереднім заповненням форми
Іноді можливо заповнити значення полів форми, використовуючи GET-параметри при завантаженні сторінки. Злоумисник може скористатися цією поведінкою, щоб заповнити форму довільними даними і відправити клікджекінговий вміст, щоб користувач натиснув кнопку "Відправити".
Заповнення форми за допомогою перетягування та відпускання
Якщо вам потрібно, щоб користувач заповнив форму, але ви не хочете прямо просити його написати певну інформацію (наприклад, електронну пошту або конкретний пароль, який ви знаєте), ви можете просто попросити його перетягнути та відпустити щось, що напише ваші керовані дані, як у цьому прикладі.
Базовий Пейлоад
Багатоетапний Пейлоад
Перетягування та клацання вразливість
XSS + Клікджекінг
Якщо ви виявили атаку XSS, яка потребує кліку користувача на певний елемент для спрацювання XSS, і сторінка вразлива до клікджекінгу, ви можете використати це, щоб обманом змусити користувача клікнути на кнопку/посилання. Приклад: Ви знайшли само XSS в деяких конфіденційних деталях облікового запису (деталі, які може встановити і прочитати тільки ви). Сторінка з формою для встановлення цих деталей вразлива до клікджекінгу, і ви можете попередньо заповнити форму з параметрами GET. __Атакувальник може підготувати атаку клікджекінгу на цю сторінку, попередньо заповнюючи форму XSS-навантаженням і обманюючи користувача клікнути на Відправити форму. Таким чином, при відправленні форми і зміні значень, користувач виконає XSS.
Стратегії для запобігання клікджекінгу
Захист на стороні клієнта
Скрипти, що виконуються на стороні клієнта, можуть виконувати дії для запобігання клікджекінгу:
Переконання, що вікно додатка є головним або верхнім вікном.
Роблення всіх фреймів видимими.
Запобігання клікам на невидимі фрейми.
Виявлення та попередження користувачів про можливі спроби клікджекінгу.
Однак ці скрипти для вибивання фреймів можуть бути обійдені:
Налаштування безпеки браузерів: Деякі браузери можуть блокувати ці скрипти на основі своїх налаштувань безпеки або відсутності підтримки JavaScript.
Атрибут HTML5 iframe
sandbox
: Атакувальник може нейтралізувати скрипти для вибивання фреймів, встановивши атрибутsandbox
зі значеннямиallow-forms
абоallow-scripts
безallow-top-navigation
. Це запобігає перевірці iframe на те, чи воно є верхнім вікном, наприклад,
Захист на стороні сервера
X-Frame-Options
Заголовок відповіді HTTP X-Frame-Options
повідомляє браузерам про законність відображення сторінки в <frame>
або <iframe>
, допомагаючи запобігти Clickjacking:
X-Frame-Options: deny
- Жоден домен не може відображати вміст.X-Frame-Options: sameorigin
- Тільки поточний сайт може відображати вміст.X-Frame-Options: allow-from https://trusted.com
- Тільки вказаний 'uri' може відображати сторінку.Зверніть увагу на обмеження: якщо браузер не підтримує цю директиву, вона може не працювати. Деякі браузери віддають перевагу директиві CSP frame-ancestors.
Директива frame-ancestors в політиці безпеки контенту (CSP)
Директива frame-ancestors
в CSP є рекомендованим методом захисту від Clickjacking:
frame-ancestors 'none'
- Схоже наX-Frame-Options: deny
.frame-ancestors 'self'
- Схоже наX-Frame-Options: sameorigin
.frame-ancestors trusted.com
- Схоже наX-Frame-Options: allow-from
.
Наприклад, наступний CSP дозволяє відображення тільки з того ж домену:
Content-Security-Policy: frame-ancestors 'self';
Додаткові деталі та складні приклади можна знайти в документації CSP frame-ancestors та документації Mozilla CSP frame-ancestors.
Політика безпеки контенту (CSP) з child-src
та frame-src
child-src
та frame-src
Політика безпеки контенту (CSP) - це захисний захід, який допомагає запобігти Clickjacking та іншим атакам ін'єкції коду, вказуючи, які джерела браузер повинен дозволити завантажувати вміст.
Директива frame-src
frame-src
Визначає дійсні джерела для фреймів.
Конкретніше, ніж директива
default-src
.
Ця політика дозволяє фрейми з того ж джерела (self) та https://trusted-website.com.
Директива child-src
child-src
Введена на рівні CSP 2 для встановлення дійсних джерел для веб-робітників та фреймів.
Діє як резервне значення для frame-src та worker-src.
Ця політика дозволяє фрейми та робочі процеси з того ж джерела (self) та https://trusted-website.com.
Примітки щодо використання:
Застаріння: child-src поступово виходить з ужитку на користь frame-src та worker-src.
Резервне поведінка: Якщо frame-src відсутній, child-src використовується як резерв для фреймів. Якщо обидва відсутні, використовується default-src.
Суворе визначення джерела: Включайте лише довірені джерела в директиви, щоб запобігти експлуатації.
Сценарії JavaScript для руйнування фреймів
Хоча не є абсолютно надійними, скрипти на основі JavaScript для руйнування фреймів можуть бути використані для запобігання вбудовуванню веб-сторінки. Приклад:
Використання анти-CSRF токенів
Перевірка токенів: Використовуйте анти-CSRF токени в веб-додатках, щоб забезпечити, що запити, які змінюють стан, здійснюються навмисно користувачем, а не через Clickjacked сторінку.
Посилання
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси за допомогою найбільш продвинутих інструментів спільноти у світі. Отримайте доступ сьогодні:
Last updated