# BrowExt - ClickJacking {{#include ../../banners/hacktricks-training.md}} ## 基本信息 本页面将利用浏览器扩展中的ClickJacking漏洞。\ 如果你不知道ClickJacking是什么,请查看: {{#ref}} ../clickjacking.md {{#endref}} 扩展包含文件**`manifest.json`**,该JSON文件有一个字段`web_accessible_resources`。以下是[Chrome文档](https://developer.chrome.com/extensions/manifest/web_accessible_resources)中对此的说明: > 这些资源将通过URL **`chrome-extension://[PACKAGE ID]/[PATH]`** 在网页中可用,该URL可以通过**`extension.getURL method`**生成。允许的资源会带有适当的CORS头,因此可以通过XHR等机制访问。[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1) 浏览器扩展中的**`web_accessible_resources`**不仅可以通过网络访问;它们还具有扩展的固有权限。这意味着它们能够: - 更改扩展的状态 - 加载额外的资源 - 在一定程度上与浏览器交互 然而,这一特性带来了安全风险。如果**`web_accessible_resources`**中的某个资源具有任何重要功能,攻击者可能会将该资源嵌入到外部网页中。毫无防备的用户访问此页面时,可能会无意中激活此嵌入的资源。这种激活可能导致意想不到的后果,具体取决于扩展资源的权限和能力。 ## PrivacyBadger 示例 在扩展PrivacyBadger中,发现了一个与`skin/`目录被声明为`web_accessible_resources`相关的漏洞,具体如下(查看原始[博客文章](https://blog.lizzie.io/clickjacking-privacy-badger.html)): ```json "web_accessible_resources": [ "skin/*", "icons/*" ] ``` 此配置导致了潜在的安全问题。具体来说,`skin/popup.html` 文件在与浏览器中的 PrivacyBadger 图标交互时被渲染,可以嵌入在 `iframe` 中。这种嵌入可能被利用来欺骗用户无意中点击“为此网站禁用 PrivacyBadger”。这样的行为将通过禁用 PrivacyBadger 保护来危害用户的隐私,并可能使用户面临更高的跟踪风险。此漏洞的视觉演示可以在提供的 ClickJacking 视频示例中查看,链接为 [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm)。 为了解决此漏洞,实施了一个简单的解决方案:从 `web_accessible_resources` 列表中移除 `/skin/*`。此更改有效地降低了风险,确保 `skin/` 目录的内容无法通过网络可访问资源进行访问或操作。 修复很简单:**从 `web_accessible_resources` 中移除 `/skin/*`**。 ### PoC ```html