Translated ['src/pentesting-web/clickjacking.md'] to uk

This commit is contained in:
Translator 2025-01-06 10:29:12 +00:00
parent 222844f7f0
commit 0ffc007179

View File

@ -8,14 +8,14 @@
### Трюк з попереднім заповненням форм
Іноді можливо **заповнити значення полів форми, використовуючи GET-параметри під час завантаження сторінки**. Зловмисник може зловживати цією поведінкою, щоб заповнити форму довільними даними та надіслати payload clickjacking, щоб користувач натиснув кнопку Відправити.
Іноді можливо **заповнити значення полів форми, використовуючи GET параметри під час завантаження сторінки**. Зловмисник може зловживати цією поведінкою, щоб заповнити форму довільними даними та надіслати payload clickjacking, щоб користувач натиснув кнопку Відправити.
### Заповнення форми за допомогою Drag\&Drop
Якщо вам потрібно, щоб користувач **заповнив форму**, але ви не хочете прямо просити його вказати якусь конкретну інформацію (таку як електронна пошта або конкретний пароль, який ви знаєте), ви можете просто попросити його **Drag\&Drop** щось, що запише ваші контрольовані дані, як у [**цьому прикладі**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
Якщо вам потрібно, щоб користувач **заповнив форму**, але ви не хочете прямо просити його ввести якусь конкретну інформацію (таку як електронна пошта або конкретний пароль, який ви знаєте), ви можете просто попросити його **Drag\&Drop** щось, що запише ваші контрольовані дані, як у [**цьому прикладі**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
### Основний Payload
```markup
```css
<style>
iframe {
position:relative;
@ -35,7 +35,7 @@ z-index: 1;
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
```
### Багатоступеневий Пейлоад
```markup
```css
<style>
iframe {
position:relative;
@ -59,7 +59,7 @@ left:210px;
<iframe src="https://vulnerable.net/account"></iframe>
```
### Drag\&Drop + Click payload
```markup
```css
<html>
<head>
<style>
@ -92,7 +92,16 @@ background: #F00;
Якщо ви виявили **атаку XSS, яка вимагає, щоб користувач натиснув** на якийсь елемент, щоб **запустити** XSS, і сторінка є **вразливою до clickjacking**, ви можете зловживати цим, щоб обманути користувача, змусивши його натиснути кнопку/посилання.\
Приклад:\
Ви знайшли **self XSS** у деяких приватних даних облікового запису (дані, які **тільки ви можете встановити та прочитати**). Сторінка з **формою** для встановлення цих даних є **вразливою** до **Clickjacking**, і ви можете **попередньо заповнити** **форму** з параметрами GET.\
Зловмисник може підготувати **атаку Clickjacking** на цю сторінку, **попередньо заповнивши** **форму** з **payload XSS** і **обманувши** **користувача** на **відправлення** форми. Таким чином, **коли форма буде відправлена** і значення будуть змінені, **користувач виконає XSS**.
Зловмисник може підготувати **Clickjacking** атаку на цю сторінку, **попередньо заповнивши** **форму** з **XSS payload** і **обманути** **користувача** на **відправлення** форми. Отже, **коли форма буде відправлена** і значення будуть змінені, **користувач виконає XSS**.
### DoubleClickjacking
Спочатку [пояснено в цьому пості](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html), ця техніка вимагатиме від жертви двічі натиснути на кнопку на спеціально створеній сторінці, розміщеній у певному місці, і використовувати різницю в часі між подіями mousedown і onclick, щоб завантажити сторінку жертви під час подвійного натискання, так що **жертва насправді натискає на легітимну кнопку на сторінці жертви**.
Приклад можна побачити в цьому відео: [https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
> [!WARNING]
> Ця техніка дозволяє обманути користувача, щоб натиснути на 1 місце на сторінці жертви, обходячи всі захисти проти clickjacking. Тому зловмисник повинен знайти **чутливі дії, які можна виконати лише з 1 натисканням, такі як запити OAuth на прийняття дозволів**.
## Стратегії для пом'якшення Clickjacking
@ -102,8 +111,8 @@ background: #F00;
- Забезпечення того, щоб вікно програми було основним або верхнім вікном.
- Зробити всі фрейми видимими.
- Запобігання натисканням на невидимі фрейми.
- Виявлення та сповіщення користувачів про потенційні спроби Clickjacking.
- Запобігти натисканням на невидимі фрейми.
- Виявлення та попередження користувачів про потенційні спроби Clickjacking.
Однак ці скрипти для знищення фреймів можуть бути обійдені:
@ -115,7 +124,7 @@ id="victim_website"
src="https://victim-website.com"
sandbox="allow-forms allow-scripts"></iframe>
```
`allow-forms` та `allow-scripts` дозволяють дії в межах iframe, одночасно заважаючи навігації на верхньому рівні. Щоб забезпечити належну функціональність цільового сайту, можуть знадобитися додаткові дозволи, такі як `allow-same-origin` та `allow-modals`, залежно від типу атаки. Повідомлення консолі браузера можуть вказати, які дозволи слід надати.
`allow-forms` та `allow-scripts` значення дозволяють дії в межах iframe, одночасно заважаючи навігації на верхньому рівні. Щоб забезпечити належну функціональність цільового сайту, можуть знадобитися додаткові дозволи, такі як `allow-same-origin` та `allow-modals`, залежно від типу атаки. Повідомлення консолі браузера можуть вказати, які дозволи слід надати.
### Серверні захисти
@ -128,19 +137,19 @@ sandbox="allow-forms allow-scripts"></iframe>
- `X-Frame-Options: allow-from https://trusted.com` - Тільки вказаний 'uri' може обрамляти сторінку.
- Зверніть увагу на обмеження: якщо браузер не підтримує цю директиву, вона може не працювати. Деякі браузери надають перевагу директиві CSP frame-ancestors.
#### Директива frame-ancestors у полі безпеки контенту (CSP)
#### Директива 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`.
- `frame-ancestors 'none'` - Подібно до `X-Frame-Options: deny`.
- `frame-ancestors 'self'` - Подібно до `X-Frame-Options: sameorigin`.
- `frame-ancestors trusted.com` - Подібно до `X-Frame-Options: allow-from`.
Наприклад, наступний CSP дозволяє обрамлення лише з того ж домену:
Наприклад, наступна CSP дозволяє обрамлення лише з того ж домену:
`Content-Security-Policy: frame-ancestors 'self';`
Додаткові деталі та складні приклади можна знайти в [документації frame-ancestors CSP](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) та [документації Mozilla щодо frame-ancestors CSP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
Додаткові деталі та складні приклади можна знайти в [документації frame-ancestors CSP](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors) та [документації Mozilla про frame-ancestors CSP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
### Політика безпеки контенту (CSP) з `child-src` та `frame-src`
@ -166,8 +175,8 @@ Content-Security-Policy: child-src 'self' https://trusted-website.com;
**Примітки щодо використання:**
- Відмова: child-src поступово замінюється на frame-src та worker-src.
- Поведінка за замовчуванням: Якщо frame-src відсутній, використовується child-src як запасний варіант для фреймів. Якщо обидва відсутні, використовується default-src.
- Відмова: child-src поступово скасовується на користь frame-src та worker-src.
- Поведінка за замовчуванням: Якщо frame-src відсутній, використовується child-src як резервний варіант для фреймів. Якщо обидва відсутні, використовується default-src.
- Суворе визначення джерела: Включайте лише надійні джерела в директиви, щоб запобігти експлуатації.
#### JavaScript скрипти для зламу фреймів