BrowExt - ClickJacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ця сторінка буде зловживати вразливістю 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 була виявлена вразливість, пов'язана з тим, що директорія skin/
була оголошена як web_accessible_resources
наступним чином (перевірте оригінальний блог-пост):
Ця конфігурація призвела до потенційної проблеми безпеки. Зокрема, файл 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
.
A блог пост про ClickJacking у metamask можна знайти тут. У цьому випадку Metamask виправив вразливість, перевіряючи, що протокол, використаний для доступу, був https:
або http:
(не chrome:
, наприклад):
Ще один ClickJacking, виправлений у розширенні Metamask, полягав у тому, що користувачі могли Click to whitelist, коли сторінка підозрювалася у фішингу через “web_accessible_resources”: [“inpage.js”, “phishing.html”]
. Оскільки ця сторінка була вразливою до Clickjacking, зловмисник міг зловживати нею, показуючи щось нормальне, щоб змусити жертву натиснути для внесення до білого списку, не помічаючи цього, а потім повернутися на сторінку фішингу, яка буде внесена до білого списку.
Check the following page to check how a XSS in a browser extension was chained with a ClickJacking vulnerability:
BrowExt - XSS ExampleLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)