Clickjacking
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Що таке Clickjacking
У атаці clickjacking користувача обманюють на клік по елементу на веб-сторінці, який або невидимий, або замаскований під інший елемент. Ця маніпуляція може призвести до непередбачуваних наслідків для користувача, таких як завантаження шкідливого ПЗ, перенаправлення на шкідливі веб-сторінки, надання облікових даних або чутливої інформації, перекази грошей або онлайн-покупка товарів.
Трюк з попереднім заповненням форм
Іноді можливо заповнити значення полів форми, використовуючи GET параметри при завантаженні сторінки. Зловмисник може зловживати цією поведінкою, щоб заповнити форму довільними даними та надіслати payload clickjacking, щоб користувач натиснув кнопку "Відправити".
Заповнення форми за допомогою Drag&Drop
Якщо вам потрібно, щоб користувач заповнив форму, але ви не хочете прямо просити його вказати якусь конкретну інформацію (наприклад, електронну пошту або конкретний пароль, який ви знаєте), ви можете просто попросити його перетягнути щось, що запише ваші контрольовані дані, як у цьому прикладі.
Основний Payload
Багатоступеневий Пейлоад
Drag&Drop + Click payload
XSS + Clickjacking
Якщо ви виявили атаку XSS, яка вимагає, щоб користувач натиснув на якийсь елемент, щоб запустити XSS, і сторінка є вразливою до clickjacking, ви можете зловживати цим, щоб обманути користувача, змусивши його натиснути кнопку/посилання. Приклад: Ви знайшли самостійний XSS у деяких приватних даних облікового запису (дані, які тільки ви можете встановити та прочитати). Сторінка з формою для встановлення цих даних є вразливою до Clickjacking, і ви можете попередньо заповнити форму з параметрами GET. __Зловмисник може підготувати Clickjacking атаку на цю сторінку, попередньо заповнивши форму з XSS payload і обманути користувача, щоб надіслати форму. Отже, коли форма буде надіслана і значення будуть змінені, користувач виконає XSS.
Стратегії для пом'якшення Clickjacking
Захисти на стороні клієнта
Скрипти, виконувані на стороні клієнта, можуть виконувати дії для запобігання Clickjacking:
Забезпечення того, щоб вікно програми було основним або верхнім вікном.
Зробити всі фрейми видимими.
Запобігти натисканням на невидимі фрейми.
Виявлення та сповіщення користувачів про потенційні спроби Clickjacking.
Однак ці скрипти для зламу фреймів можуть бути обійдені:
Налаштування безпеки браузерів: Деякі браузери можуть блокувати ці скрипти на основі своїх налаштувань безпеки або відсутності підтримки JavaScript.
HTML5 iframe
sandbox
атрибут: Зловмисник може нейтралізувати скрипти для зламу фреймів, встановивши атрибутsandbox
зі значеннямиallow-forms
абоallow-scripts
безallow-top-navigation
. Це запобігає перевірці iframe, чи є він верхнім вікном, наприклад,
The allow-forms
and allow-scripts
values enable actions within the iframe while disabling top-level navigation. To ensure the intended functionality of the targeted site, additional permissions like allow-same-origin
and allow-modals
might be necessary, depending on the attack type. Browser console messages can guide which permissions to allow.
Серверні захисти
X-Frame-Options
The X-Frame-Options
HTTP response header informs browsers about the legitimacy of rendering a page in a <frame>
or <iframe>
, helping to prevent 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
.
For instance, the following CSP only allows framing from the same domain:
Content-Security-Policy: frame-ancestors 'self';
Further details and complex examples can be found in the frame-ancestors CSP documentation and Mozilla's CSP frame-ancestors documentation.
Політика безпеки контенту (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 для зламу фреймів можуть бути використані для запобігання тому, щоб веб-сторінка була в фреймі. Приклад:
Використання Anti-CSRF Токенів
Валідація Токенів: Використовуйте anti-CSRF токени в веб-додатках, щоб забезпечити, що запити, що змінюють стан, здійснюються навмисно користувачем, а не через Clickjacked сторінку.
Посилання
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, підтримувані найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Last updated