mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/browser-extension-pentesting-methodology
This commit is contained in:
parent
3c61c84b97
commit
051db2f2d7
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
## Основна інформація
|
## Basic Information
|
||||||
|
|
||||||
Ця сторінка буде використовувати вразливість ClickJacking у розширенні браузера.\
|
Ця сторінка буде використовувати вразливість ClickJacking у розширенні браузера.\
|
||||||
Якщо ви не знаєте, що таке ClickJacking, ознайомтеся з:
|
Якщо ви не знаєте, що таке ClickJacking, перевірте:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
../clickjacking.md
|
../clickjacking.md
|
||||||
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
Розширення містить файл **`manifest.json`** і цей JSON файл має поле `web_accessible_resources`. Ось що кажуть [документи Chrome](https://developer.chrome.com/extensions/manifest/web_accessible_resources):
|
Розширення містить файл **`manifest.json`** і цей JSON файл має поле `web_accessible_resources`. Ось що кажуть [документи Chrome](https://developer.chrome.com/extensions/manifest/web_accessible_resources):
|
||||||
|
|
||||||
> Ці ресурси будуть доступні на веб-сторінці через URL **`chrome-extension://[PACKAGE ID]/[PATH]`**, який можна згенерувати за допомогою **`extension.getURL method`**. Ресурси, що знаходяться в білому списку, подаються з відповідними заголовками CORS, тому вони доступні через механізми, такі як XHR.[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1)
|
> Ці ресурси будуть доступні на веб-сторінці через URL **`chrome-extension://[PACKAGE ID]/[PATH]`**, який можна згенерувати за допомогою **`extension.getURL method`**. Дозволені ресурси подаються з відповідними заголовками CORS, тому вони доступні через механізми, такі як XHR.[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1)
|
||||||
|
|
||||||
**`web_accessible_resources`** у розширенні браузера доступні не лише через веб; вони також працюють з вбудованими привілеями розширення. Це означає, що вони мають можливість:
|
**`web_accessible_resources`** у розширенні браузера доступні не лише через веб; вони також працюють з вбудованими привілеями розширення. Це означає, що вони мають можливість:
|
||||||
|
|
||||||
@ -23,18 +23,18 @@
|
|||||||
|
|
||||||
Однак ця функція представляє собою ризик для безпеки. Якщо ресурс у **`web_accessible_resources`** має будь-яку значну функціональність, зловмисник може потенційно вбудувати цей ресурс у зовнішню веб-сторінку. Непідозрюючі користувачі, які відвідують цю сторінку, можуть ненавмисно активувати цей вбудований ресурс. Така активація може призвести до непередбачуваних наслідків, залежно від дозволів і можливостей ресурсів розширення.
|
Однак ця функція представляє собою ризик для безпеки. Якщо ресурс у **`web_accessible_resources`** має будь-яку значну функціональність, зловмисник може потенційно вбудувати цей ресурс у зовнішню веб-сторінку. Непідозрюючі користувачі, які відвідують цю сторінку, можуть ненавмисно активувати цей вбудований ресурс. Така активація може призвести до непередбачуваних наслідків, залежно від дозволів і можливостей ресурсів розширення.
|
||||||
|
|
||||||
## Приклад PrivacyBadger
|
## PrivacyBadger Example
|
||||||
|
|
||||||
У розширенні PrivacyBadger була виявлена вразливість, пов'язана з тим, що директорія `skin/` була оголошена як `web_accessible_resources` наступним чином (перевірте оригінальний [блог-пост](https://blog.lizzie.io/clickjacking-privacy-badger.html)):
|
У розширенні PrivacyBadger була виявлена вразливість, пов'язана з тим, що директорія `skin/` була оголошена як `web_accessible_resources` наступним чином (перевірте оригінальний [блог пост](https://blog.lizzie.io/clickjacking-privacy-badger.html)):
|
||||||
```json
|
```json
|
||||||
"web_accessible_resources": [
|
"web_accessible_resources": [
|
||||||
"skin/*",
|
"skin/*",
|
||||||
"icons/*"
|
"icons/*"
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
Ця конфігурація призвела до потенційної проблеми безпеки. Зокрема, файл `skin/popup.html`, який відображається при взаємодії з іконкою PrivacyBadger у браузері, може бути вбудований в `iframe`. Це вбудовування може бути використане для обману користувачів, змушуючи їх випадково натискати на "Вимкнути PrivacyBadger для цього веб-сайту". Така дія порушить конфіденційність користувача, вимкнувши захист PrivacyBadger і потенційно піддаючи користувача підвищеному відстеженню. Візуальну демонстрацію цього експлойту можна переглянути у відео прикладі ClickJacking, наданому за посиланням [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm).
|
Ця конфігурація призвела до потенційної проблеми безпеки. Зокрема, файл `skin/popup.html`, який відображається при взаємодії з іконкою PrivacyBadger у браузері, може бути вбудований у `iframe`. Це вбудовування може бути використане для обману користувачів, змушуючи їх випадково натискати на "Вимкнути PrivacyBadger для цього веб-сайту". Така дія порушить конфіденційність користувача, вимкнувши захист PrivacyBadger і потенційно піддаючи користувача підвищеному відстеженню. Візуальну демонстрацію цього експлойту можна переглянути у відео прикладі ClickJacking, наданому за посиланням [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm).
|
||||||
|
|
||||||
Щоб вирішити цю вразливість, було реалізовано просте рішення: видалення `/skin/*` зі списку `web_accessible_resources`. Ця зміна ефективно зменшила ризик, забезпечивши, що вміст каталогу `skin/` не може бути доступний або маніпульований через веб-доступні ресурси.
|
Щоб усунути цю вразливість, було реалізовано просте рішення: видалення `/skin/*` зі списку `web_accessible_resources`. Ця зміна ефективно зменшила ризик, забезпечивши, що вміст каталогу `skin/` не може бути доступний або маніпульований через веб-доступні ресурси.
|
||||||
|
|
||||||
Виправлення було простим: **видалити `/skin/*` з `web_accessible_resources`**.
|
Виправлення було простим: **видалити `/skin/*` з `web_accessible_resources`**.
|
||||||
|
|
||||||
@ -75,11 +75,11 @@ src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
|
|||||||
```
|
```
|
||||||
## Metamask Example
|
## Metamask Example
|
||||||
|
|
||||||
A [**блог пост про ClickJacking в metamask можна знайти тут**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9). У цьому випадку Metamask виправив вразливість, перевіряючи, що протокол, використаний для доступу, був **`https:`** або **`http:`** (не **`chrome:`**, наприклад):
|
A [**blog post about a ClickJacking in metamask can be found here**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9). In this case, Metamask fixed the vulnerability by checking that the protocol used to access it was **`https:`** or **`http:`** (not **`chrome:`** for example):
|
||||||
|
|
||||||
<figure><img src="../../images/image (21).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../../images/image (21).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
**Ще один ClickJacking, виправлений** в розширенні Metamask, полягав у тому, що користувачі могли **Click to whitelist**, коли сторінка підозрювалася у фішингу через `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. Оскільки ця сторінка була вразливою до Clickjacking, зловмисник міг зловживати цим, показуючи щось нормальне, щоб змусити жертву натиснути для внесення в білий список, не помічаючи цього, а потім повернутися на сторінку фішингу, яка буде внесена в білий список.
|
**Ще один ClickJacking, виправлений** в розширенні Metamask, полягав у тому, що користувачі могли **Click to whitelist**, коли сторінка підозрювалася у фішингу через `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. Оскільки ця сторінка була вразливою до Clickjacking, зловмисник міг зловживати нею, показуючи щось нормальне, щоб змусити жертву натиснути для додавання до білого списку, не помічаючи цього, а потім повернутися на сторінку фішингу, яка буде додана до білого списку.
|
||||||
|
|
||||||
## Steam Inventory Helper Example
|
## Steam Inventory Helper Example
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user