BrowExt - XSS Example
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)
W tej konfiguracji implementowany jest skrypt treści, aby zainicjować Iframe, włączając adres URL z parametrami zapytania jako źródło Iframe:
Strona HTML dostępna publicznie, message.html
, jest zaprojektowana do dynamicznego dodawania treści do ciała dokumentu na podstawie parametrów w URL:
Na złośliwej stronie skrypt jest wykonywany, modyfikując parametr content
źródła Iframe, aby wprowadzić ładunek XSS. Osiąga się to poprzez zaktualizowanie źródła Iframe, aby zawierało szkodliwy skrypt:
Zbyt liberalna Polityka Bezpieczeństwa Treści, taka jak:
pozwala na wykonanie JavaScript, co sprawia, że system jest podatny na ataki XSS.
Alternatywne podejście do wywołania XSS polega na utworzeniu elementu Iframe i ustawieniu jego źródła, aby zawierało szkodliwy skrypt jako parametr content
:
Ten przykład pochodzi z oryginalnego opisu.
Główny problem wynika z podatności na Cross-site Scripting (XSS) opartej na DOM, znajdującej się w /html/bookmarks.html
. Problematyczny JavaScript, część bookmarks.js
, jest szczegółowo opisany poniżej:
Ten fragment pobiera wartość z pola wejściowego txtName
i używa konkatenacji łańcuchów do generowania HTML, który następnie jest dodawany do DOM za pomocą funkcji .append()
jQuery.
Zazwyczaj Polityka Bezpieczeństwa Treści (CSP) rozszerzenia Chrome zapobiegałaby takim lukom. Jednak z powodu rozluźnienia CSP z ‘unsafe-eval’ oraz użycia metod manipulacji DOM jQuery (które wykorzystują globalEval()
do przekazywania skryptów do eval()
po wstawieniu do DOM), wykorzystanie jest nadal możliwe.
Chociaż ta luka jest istotna, jej wykorzystanie zazwyczaj zależy od interakcji użytkownika: odwiedzenia strony, wprowadzenia ładunku XSS i aktywacji przycisku „Dodaj”.
Aby wzmocnić tę lukę, wykorzystuje się wtórną lukę clickjacking. Manifest rozszerzenia Chrome pokazuje rozbudowaną politykę web_accessible_resources
:
Notably, the /html/bookmarks.html
strona jest podatna na framing, a zatem wrażliwa na clickjacking. Ta podatność jest wykorzystywana do osadzenia strony w witrynie atakującego, nakładając na nią elementy DOM, aby wprowadzić w błąd interfejs. Ta manipulacja prowadzi ofiary do niezamierzonego interakcji z podstawową rozszerzeniem.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)