BrowExt - ClickJacking

Reading time: 5 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Basiese Inligting

Hierdie bladsy gaan 'n ClickJacking kwesbaarheid in 'n Blaaier uitbreiding misbruik.
As jy nie weet wat ClickJacking is nie, kyk:

Clickjacking

Uitbreidings bevat die lêer manifest.json en daardie JSON-lêer het 'n veld web_accessible_resources. Hier is wat die Chrome dokumentasie daaroor sê:

Hierdie hulpbronne sal dan beskikbaar wees in 'n webblad via die URL chrome-extension://[PACKAGE ID]/[PATH], wat gegenereer kan word met die extension.getURL method. Toegelate hulpbronne word bedien met toepaslike CORS koptekste, sodat hulle beskikbaar is via meganismes soos XHR.1

Die web_accessible_resources in 'n blaaiers uitbreiding is nie net via die web toeganklik nie; hulle werk ook met die uitbreiding se inherente voorregte. Dit beteken hulle het die vermoë om:

  • Die uitbreiding se toestand te verander
  • Bykomende hulpbronne te laai
  • Met die blaaier tot 'n sekere mate te kommunikeer

Egter, hierdie kenmerk bied 'n sekuriteitsrisiko. As 'n hulpbron binne web_accessible_resources enige beduidende funksionaliteit het, kan 'n aanvaller moontlik hierdie hulpbron in 'n eksterne webblad inkorporeer. Onbewuste gebruikers wat hierdie bladsy besoek, mag per ongeluk hierdie ingekorporeerde hulpbron aktiveer. So 'n aktivering kan lei tot onvoorsiene gevolge, afhangende van die toestemmings en vermoëns van die uitbreiding se hulpbronne.

PrivacyBadger Voorbeeld

In die uitbreiding PrivacyBadger is 'n kwesbaarheid geïdentifiseer wat verband hou met die skin/ gids wat as web_accessible_resources verklaar is op die volgende manier (Kyk die oorspronklike blogpos):

json
"web_accessible_resources": [
"skin/*",
"icons/*"
]

Hierdie konfigurasie het gelei tot 'n potensiële sekuriteitsprobleem. Spesifiek, die skin/popup.html lêer, wat gerender word wanneer daar interaksie is met die PrivacyBadger ikoon in die blaaier, kan binne 'n iframe ingebed word. Hierdie inbedding kan uitgebuit word om gebruikers te mislei om per ongeluk op "Disable PrivacyBadger for this Website" te klik. So 'n aksie sou die gebruiker se privaatheid in gevaar stel deur die PrivacyBadger beskerming te deaktiveer en die gebruiker moontlik aan verhoogde opsporing bloot te stel. 'n Visuele demonstrasie van hierdie uitbuiting kan gesien word in 'n ClickJacking video voorbeeld wat beskikbaar is by https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm.

Om hierdie kwesbaarheid aan te spreek, is 'n eenvoudige oplossing geïmplementeer: die verwydering van /skin/* uit die lys van web_accessible_resources. Hierdie verandering het die risiko effektief verminder deur te verseker dat die inhoud van die skin/ gids nie deur web-toeganklike hulpbronne toegang of gemanipuleer kon word nie.

Die regstelling was maklik: verwyder /skin/* uit die 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 Voorbeeld

'n blogpos oor 'n ClickJacking in metamask kan hier gevind word. In hierdie geval het Metamask die kwesbaarheid reggestel deur te verifieer dat die protokol wat gebruik is om toegang te verkry https: of http: was (nie chrome: nie, byvoorbeeld):

Nog 'n ClickJacking wat reggestel is in die Metamask-uitbreiding was dat gebruikers in staat was om Klik om te witlys wanneer 'n bladsy verdag was om phishing te wees as gevolg van “web_accessible_resources”: [“inpage.js”, “phishing.html”]. Aangesien daardie bladsy kwesbaar was vir Clickjacking, kon 'n aanvaller dit misbruik deur iets normaal te wys om die slagoffer te laat klik om dit te witlys sonder om dit te besef, en dan terug te gaan na die phishing-bladsy wat gewitlys sal wees.

Steam Inventory Helper Voorbeeld

Kyk na die volgende bladsy om te sien hoe 'n XSS in 'n blaaiers-uitbreiding geketting is met 'n ClickJacking kwesbaarheid:

BrowExt - XSS Example

Verwysings

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks