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)
Ta strona będzie wykorzystywać lukę ClickJacking w rozszerzeniu przeglądarki. Jeśli nie wiesz, czym jest ClickJacking, sprawdź:
ClickjackingRozszerzenia zawierają plik manifest.json
, a ten plik JSON ma pole web_accessible_resources
. Oto, co mówią dokumenty Chrome:
Te zasoby będą dostępne na stronie internetowej za pomocą adresu URL
chrome-extension://[PACKAGE ID]/[PATH]
, który można wygenerować za pomocąextension.getURL method
. Zasoby na liście dozwolonych są serwowane z odpowiednimi nagłówkami CORS, więc są dostępne za pomocą mechanizmów takich jak XHR.1
web_accessible_resources
w rozszerzeniu przeglądarki nie są dostępne tylko przez sieć; działają również z wbudowanymi uprawnieniami rozszerzenia. Oznacza to, że mają zdolność do:
Zmiany stanu rozszerzenia
Ładowania dodatkowych zasobów
Interakcji z przeglądarką w pewnym zakresie
Jednak ta funkcja stwarza ryzyko bezpieczeństwa. Jeśli zasób w web_accessible_resources
ma jakąś istotną funkcjonalność, atakujący mógłby potencjalnie osadzić ten zasób w zewnętrznej stronie internetowej. Nieuważni użytkownicy odwiedzający tę stronę mogą nieświadomie aktywować ten osadzony zasób. Taka aktywacja może prowadzić do niezamierzonych konsekwencji, w zależności od uprawnień i możliwości zasobów rozszerzenia.
W rozszerzeniu PrivacyBadger zidentyfikowano lukę związaną z katalogiem skin/
, który został zadeklarowany jako web_accessible_resources
w następujący sposób (sprawdź oryginalny post na blogu):
Ta konfiguracja prowadziła do potencjalnego problemu z bezpieczeństwem. Konkretnie, plik skin/popup.html
, który jest renderowany po interakcji z ikoną PrivacyBadger w przeglądarce, mógł być osadzony w iframe
. To osadzenie mogło być wykorzystane do wprowadzenia użytkowników w błąd, aby nieumyślnie kliknęli "Wyłącz PrivacyBadger dla tej witryny". Taki krok naruszyłby prywatność użytkownika, wyłączając ochronę PrivacyBadger i potencjalnie narażając użytkownika na zwiększone śledzenie. Wizualna demonstracja tego exploit'u jest dostępna w przykładzie wideo ClickJacking pod adresem https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm.
Aby rozwiązać tę lukę, wdrożono proste rozwiązanie: usunięcie /skin/*
z listy web_accessible_resources
. Ta zmiana skutecznie zminimalizowała ryzyko, zapewniając, że zawartość katalogu skin/
nie mogła być dostępna ani manipulowana przez zasoby dostępne w sieci.
Naprawa była prosta: usuń /skin/*
z web_accessible_resources
.
A post na blogu o ClickJacking w metamask można znaleźć tutaj. W tym przypadku Metamask naprawił lukę, sprawdzając, czy protokół użyty do uzyskania dostępu to https:
lub http:
(a nie chrome:
na przykład):
Inny ClickJacking naprawiony w rozszerzeniu Metamask polegał na tym, że użytkownicy mogli Kliknąć, aby dodać do białej listy, gdy strona była podejrzana o phishing z powodu “web_accessible_resources”: [“inpage.js”, “phishing.html”]
. Ponieważ ta strona była podatna na Clickjacking, atakujący mógł to wykorzystać, pokazując coś normalnego, aby ofiara kliknęła, aby dodać do białej listy, nie zauważając tego, a następnie wracając do strony phishingowej, która zostanie dodana do białej listy.
Sprawdź następującą stronę, aby zobaczyć, jak XSS w rozszerzeniu przeglądarki zostało połączone z luką ClickJacking:
BrowExt - XSS ExampleLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)