MetaMask 浏览器扩展钱包 Clickjacking 漏洞分析

2022 年 6 月 3 日,MetaMask(MM)公开了白帽子发现的一个严重的 Clickjacking 漏洞,这个漏洞可以造成的影响是:在用户的 MM 插件钱包处于解锁状态,用户访问恶意的站点时,站点可以利用 iframe 标签将解锁的 MM 插件钱包页面嵌入到网页中并进行隐藏,然后引导用户在网站上进行点击操作,实际上是在 MM 解锁的页面中进行操作,从而盗取用户的数字货币或藏品等相关资产。鉴于 MM 的用户体量较大,且 Fork MetaMask 插件钱包的项目也比较多,因此在 MM 公开这个漏洞后,我们立即开始对这个漏洞进行复现,然后开始搜寻这个漏洞对于其他 Fork MetaMask 项目的影响。

随后,慢雾安全团队尽可能地通知受到影响的项目方,并引导项目方进行修复。现在将这个 Clickjacking 漏洞的分析公开出来避免后续的项目踩坑。

漏洞分析

由于 MM 在发布这个 Clickjacking 漏洞的时候并没有详细的说明,仅是解释了这个漏洞的利用场景以及能够产生的危害,所以我在进行复现的时候也遇到了挺多坑(各种盲猜漏洞点),所以为了让大家能够更好地顺畅地理解整个漏洞,我在进行漏洞分析之前先补充下一个知识点。

我们来了解下 Manifest - Web Accessible Resources。在浏览器扩展钱包中有这么一个配置:web_accessible_resources,其用来约束 Web 页面能够访问到浏览器扩展的哪些资源,并且在默认的情况下是 Web 页面访问不到浏览器扩展中的资源文件,仅浏览器扩展的本身才能访问到浏览器扩展的资源。简而言之就是 http/https 等协议下的页面默认是没法访问到 chrome-extension,当然如果扩展钱包配置了 web_accessible_resources 将扩展钱包内部的资源暴露出来,那么就能被 http/https 等协议下的页面访问到了。

而 MM 扩展钱包在 10.14.6 之前的版本(本文以 10.14.5 为例)一直保留着 "web_accessible_resources": ["inpage.js", "phishing.html"] 的配置,而这个配置是漏洞得以被利用的一个关键点。

然而在进行漏洞分析的时候,发现在 app/scripts/phishing-detect.js(v10.14.5) 中已经对钓鱼页面的跳转做了协议的限制。(这里的限制在我的理解应该是还有其他的坑,毕竟 "web_accessible_resources": ["inpage.js", "phishing.html"]`这个配置还保留着)。

我们继续跟进这个协议限制的改动时间点,发现是在如下这个 commit 中添加了这个限制,也就是说在 v10.14.1 之前由于没有对跳转的协议进行限制,导致 Clickjacking 漏洞可以轻易被利用。

相关的 commit:

https://github.com/MetaMask/metamask-extension/commit/c1ca70d7325577835a23c1fae2b0b9b10df54490

https://github.com/MetaMask/metamask-extension/compare/v10.14.0...v10.14.1

为了验证代码的分析过程,我们切换到 protocol 限制之前的版本 v10.14.0 进行测试,发现可以轻松复现整个攻击过程。

但是在 MM 公开的报告中也提到,Clickjacking 漏洞是在 v10.14.6 进行了修复,所以 v10.14.5 是存在漏洞的,再继续回头看这里的猜想。(这里的限制在我的理解应该是还有其他的坑,毕竟 "web_accessible_resources": ["inpage.js", "phishing.html"] 这个配置还保留着)。


经过反复翻阅代码,在 v10.14.5 以及之前版本的代码,会在钓鱼页面提示的时候,如果用户点击了 continuing at your own risk. 之后就会将这个 hostname 加入到本地的白名单列表中。从而在下一次访问到该网站的时候就不会再出现 MetaMask Phishing Detection 的提醒。

比如这个钓鱼网站:ethstake.exchange,通过 iframe 标签将钓鱼网站嵌入到网页中,然后利用 Clickjacking 漏洞就能将恶意的钓鱼网站加入到白名单中,同时在用户下一次访问钓鱼网站的时候 MM 不会再继续弹出警告。

分析结论

如上述的分析过程,其实 MM 近期修复的是两个 Clickjacking 漏洞,在复现过程中发现最新的 v10.14.6 已经将 web_accessible_resources 的相关配置移除了,彻底修复了 MetaMask Phishing Detection 页面的点击劫持的问题。

(1)利用 Clickjacking 漏洞诱导用户进行转账的修复(影响版本:< = v10.14.0):

https://github.com/MetaMask/metamask-extension/commit/c1ca70d7325577835a23c1fae2b0b9b10df54490

(2)利用 Clickjacking 漏洞将钓鱼网站加入到白名单的修复(影响版本:<= v10.14.5):

https://github.com/MetaMask/metamask-extension/commit/7199d9c56775111f85225fe15297e47de8e2bc96

慢雾安全团队对 chrome 扩展商店中的各个知名的扩展钱包进行了 Clickjacking 的漏洞检测,发现如下的钱包受到 Clickjacking 漏洞影响:

  • Coinbase Wallet (v2.17.2)

  • Coin98 Wallet (v6.0.6)

  • Maiar DeFi Wallet (v1.2.17)

慢雾安全团队第一时间联系项目方团队,但是到目前为止部分项目方还未反馈,并且 MM 公开这个漏洞至今已经过去了 11 天。为了避免用户因为该漏洞遭受损失,慢雾安全团队选择公开漏洞的分析。如果受影响的相关项目方看到这篇文章需要协助请联系慢雾安全团队。

慢雾安全团队再次提醒浏览器扩展钱包项目方如果有基于 MetaMask

慢雾安全团队建议普通用户在项目方还未修复漏洞之前可以先暂时停止使用这些扩展钱包(在浏览器扩展程序管理中关闭这些扩展钱包),等待钱包官方发布修复版本后,用户可以及时更新到已修复的版本进行使用。

24小时热点

ibox数藏平台暴雷!彻底的凉凉了!

因为NFT的爆火,连着NFT相关平台也是热度高涨,可是越是爆 ... 置顶

129971

现在是投资加密货币的好时机吗?

最近加密市场不断下行,市场情绪低靡,大多数山寨币已显颓势,尽 ...

334

布洛克

Web3在遥远的未来?不 它已经来了

FaceBook更名MeTa,让元宇宙一词火爆出圈,一时风头 ...

4884

大币网

数藏平台的合规与利润博弈:藏品滞销、用户流失VS炒作不断、平台稳赚

在众多二级市场平台的围剿中,幻核、鲸探等大厂的用户正在流失。 ...

21455

汤姆猫元宇宙

X2earn: 最容易理解的Web3范式之一

目录: 1.    X2earn: 最容易理解的 ...

13266

Lootcakes免费游戏网络

区块链信息服务备案管理系统备案

区块链信息服务备案仅对备案主体所从事的区块链信息服务进行登记 ...

236983

NFTs代售

如何解决DAO内冲突?

本文深入探讨了正视 DAO 内冲突的重要性,并提供了解决 D ...

11030

阿瓦隆矿机

Web3 有7大颠覆性概念

要想在未来取得成功,你现在必须要学习 web3 了。 ...

6672

一棵树的声音

7 个板块的Web3 社交赛道蓬勃发展

Web3 社交赛道蓬勃发展,50 个入选项目来自社交通讯、社 ...

2890

宙核

Web3 领域开拓组织创意生产的新方式(之二)

受访者一致认为「人们现在最容易获得报酬的方式是通过资助」,这 ...

2167

大币网

Vitalik 上海峰会演讲全文:以太坊合并或将在 8 月开始

Vitalik Buterin 分享了以太坊合并等最新进展, ...

12563

CryptoRank

热点专题

以游戏带动引擎发展实现功能迭代与技术演进

游戏引擎作为游戏创作工具与游戏运行的底层控制器,着力于在虚拟 ... 置顶

14157

2021年打假总结:存活近3年 疯狂的“传销币”GEC是怎么苟延残喘至今?

币圈从来不缺乏资金盘或是传销币,但多数都不长久,一夜之间项目 ...

2744532

加密兔

2021年打假总结:Pi Network项目的传销性质Pi币

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

1760770

加密兔

柴犬币SHIB来了

受狗狗币启发,柴犬币(SHIB)近两天被创造出来。

1181279

Luart

非常硬核的LP流动性挖矿的核算

2021年1月19日20:00MDX正式上线交易挖矿和流动性 ...

1044005

RMRK

什么是去中心化交易所(DEX)?

去中心化交易所是一个基于区块链的交易所,它不将用户资金和个人 ...

1033883

bitFlyer交易所

骗走了中国人5000亿MBI集团的“易物币”长什么样的

人性终究还是舍弃不掉自己贪婪的一面! 今年10月 ...

788961

a16z

在Mdex上挖矿教程

Mdex是火币生态链上的去中心化交易所,Mdex挖矿于1月1 ...

736117

大都会资本

国内460种传销币套路和骗子币名单大曝光

全员警惕!!!国内460种传销币套路和骗子币名单大曝光(附全 ...

657074

Coin Metrics

国家区块链相关政策汇总

据零壹智库不完全统计,截至2019年12月,国家层面共计出台 ...

625471

利得链

最近央行提出的DC/EP是什么?

2019年8月10日,央行结算司副司长穆长春发表演讲,介绍了 ...

617791

网络资源