BrowExt - XSS Example
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
U ovoj postavci, sadržajni skript se implementira da instancira Iframe, uključujući URL sa parametrima upita kao izvor Iframe-a:
Javna HTML stranica, message.html
, je dizajnirana da dinamički dodaje sadržaj u telo dokumenta na osnovu parametara u URL-u:
Na zloćudnoj stranici se izvršava zloćudni skript, modifikujući content
parametar izvora Iframe-a kako bi se uveo XSS payload. To se postiže ažuriranjem izvora Iframe-a da uključuje štetni skript:
Previše permisivna politika bezbednosti sadržaja kao što je:
omogućava izvršavanje JavaScript-a, čineći sistem ranjivim na XSS napade.
Alternativni pristup za izazivanje XSS-a uključuje kreiranje Iframe elementa i postavljanje njegovog izvora da uključuje štetni skript kao content
parametar:
Ovaj primer je preuzet iz originalnog posta.
Osnovni problem proizašao je iz DOM-bazirane Cross-site Scripting (XSS) ranjivosti koja se nalazi u /html/bookmarks.html
. Problematični JavaScript, deo bookmarks.js
, je detaljno opisan u nastavku:
Ovaj deo koda preuzima vrednost iz txtName
ulaznog polja i koristi spajanje stringova za generisanje HTML-a, koji se zatim dodaje u DOM koristeći jQuery-ovu funkciju .append()
.
Obično, Content Security Policy (CSP) Chrome ekstenzije bi sprečila takve ranjivosti. Međutim, zbog opuštanja CSP-a sa ‘unsafe-eval’ i korišćenja jQuery-ovih metoda manipulacije DOM-om (koje koriste globalEval()
za prosleđivanje skripti u eval()
prilikom umetanja u DOM), eksploatacija je i dalje moguća.
Iako je ova ranjivost značajna, njena eksploatacija obično zavisi od interakcije korisnika: posete stranici, unošenja XSS payload-a i aktiviranja dugmeta “Add”.
Da bi se pojačala ova ranjivost, koristi se sekundarna clickjacking ranjivost. Manifest Chrome ekstenzije prikazuje opširnu politiku web_accessible_resources
:
Značajno, stranica /html/bookmarks.html
je podložna uokviravanju, što je čini ranjivom na clickjacking. Ova ranjivost se koristi za uokviravanje stranice unutar napadačeve stranice, prekrivajući je DOM elementima kako bi se obmanjujuće redizajniralo korisničko sučelje. Ova manipulacija dovodi žrtve do nehotice interakcije sa osnovnom ekstenzijom.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)