BrowExt - XSS Example
Cross-Site Scripting (XSS) putem Iframe-a
U ovom scenariju, content script je implementiran kako bi instancirao Iframe, koji uključuje URL sa upitnim parametrima kao izvor Iframe-a:
Javno dostupna HTML stranica, message.html
, je dizajnirana da dinamički dodaje sadržaj u tijelo dokumenta na osnovu parametara u URL-u:
Na stranici protivnika izvršava se zlonamerni skript koji menja parametar content
izvora Iframe-a kako bi se unela XSS payload. To se postiže ažuriranjem izvora Iframe-a da uključuje štetnu skriptu:
Preterasno dozvoljena politika bezbednosti sadržaja, kao što je:
omogućava izvršavanje JavaScript-a, čineći sistem podložnim XSS napadima.
Alternativni pristup za izazivanje XSS-a uključuje kreiranje Iframe elementa i postavljanje izvora na uključivanje štetnog skripta kao parametra content
:
DOM-bazirani XSS + ClickJacking
Ovaj primer je preuzet iz originalnog posta.
Osnovni problem proizlazi iz DOM-bazirane ranjivosti Cross-site Scripting (XSS) koja se nalazi u /html/bookmarks.html
. Problematicni JavaScript deo, koji je deo bookmarks.js
, je detaljno opisan ispod:
Ovaj odlomak dohvaća vrednost iz polja za unos txtName
i koristi spajanje nizova da generiše HTML, koji se zatim dodaje u DOM korišćenjem jQuery-ove funkcije .append()
.
Uobičajeno, Chrome ekstenzija koristi Content Security Policy (CSP) koja bi sprečila ovakve ranjivosti. Međutim, zbog opuštanja CSP-a sa 'unsafe-eval' i korišćenja jQuery-ovih metoda manipulacije DOM-om (koje koriste globalEval()
da bi prosledile skripte funkciji 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: poseta stranici, unošenje XSS payloada i aktiviranje dugmeta "Dodaj".
Da bi se ova ranjivost poboljšala, eksploatiše se sekundarna ranjivost clickjacking-a. Manifest Chrome ekstenzije prikazuje opsežnu politiku web_accessible_resources
:
Posebno, stranica /html/bookmarks.html
je podložna framingu, te je ranjiva na clickjacking. Ova ranjivost se koristi za framing stranice unutar sajta napadača, prekrivajući je DOM elementima kako bi se prevarantski redizajnirao interfejs. Ova manipulacija navodi žrtve da nenamerno interaguju sa podrazumevanim proširenjem.
Reference
Last updated