浏览器恶意书签是如何盗取你的Discord Token的?_ORD:DISC币

作者:耀@慢雾安全团队

背景

区块链的世界遵循黑暗森林法则,在这个世界我们随时可能遭受到来自不明的外部攻击,作为普通用户不进行作恶,但是了解黑客的作恶的方式是十分必要的。

慢雾安全团队此前发布了区块链黑暗森林自救手册,其中提到了不少关于针对NFT项目方的Discord进行攻击的手法,为了帮助读者对相关钓鱼方式有更清晰的认知,本文将揭露其中一种钓鱼方法,即通过恶意的书签来盗取项目方Discord账号的Token,用来发布虚假信息等诱导用户访问钓鱼网站,从而盗取用户的数字资产。

钓鱼事件

先来回顾一起Discord钓鱼事件:2022年3月14日,一则推特称NFT项目WizardPass的Discord社区被者入侵,目前已造成BAYC、Doodles、CloneX等NFT被盗,详情如下:

美国德州众议院委员会拒绝通过限制比特币矿企激励上限的法案:6月2日消息,据 Satoshi Action Fund CEO 兼联创 Dennis Porter 发推称,美国德克萨斯州众议院委员会未通过 SB 1751 号法案,该法案被称为反挖矿法案。

此前报道,美国德克萨斯州参议院通过 1751 号法案,该法案将修改该州公用事业和税法的部分内容,以增加对加密挖矿公司的限制,该法案旨在将参与需求响应计划的比特币矿企的激励限制在 10%,并取消对该行业的税收减免。[2023/6/2 11:55:06]

来源:https://twitter.com/sentinelwtf/status/1496293768542429187

该解读里说的bookmark就是浏览器书签,这个书签里的内容可以是一段JavaScript恶意代码,当Discord用户点击时,恶意JavaScript代码就会在用户所在的Discord域内执行,盗取DiscordToken,攻击者获得项目方的DiscordToken后就可以直接自动化接管项目方的Discord账户相关权限。

德州监管机构:若Alameda成功向Voyager索赔4.45亿美元,其他债权人权益将减半:金色财经报道,据美国德克萨斯州监管机构发布的一份法庭文件显示,若 Alameda Research 对 Voyager 4.45 亿美元的索赔成功,Voyager 债权人的资产回收率可能会从 51% 降至 24% 至 26%,而相比之下让 Voyager 破产清算可能会使得债权人回收更多资产。该文件称,Binance.US 对 Voyager 的收购应取消,Voyager 并未对 Alameda 的索赔以及用户个人信息可能被转移至海外司法管辖区进行充分地警告。

此外,德克萨斯证券委员会执法主任 Joe Rotunda 表示,Binance.US 的质押计划不同于传统的加密货币质押,可能构成了非法证券发行。[2023/2/27 12:32:16]

背景知识

声音 | 德州市政协委员:运用区块链安全技术等建立居民健康大数据中心:金色财经报道,1月8日下午,德州市政协委员、市中医院脑病科主任李玉杭向市政协十四届四次会议提交提案。李玉杭建议,研究制定德州市全民健康信息平台信息数据共享与交换规范,充分利用现有医院、疾控、妇幼、公卫、医疗保障、药店及健康查体中心等信息化资源,运用云计算、5G、区块链安全技术建立全市居民健康大数据中心。[2020/1/9]

要理解该事件需要读者有一定的背景知识,现在的浏览器都有自带的书签管理器,在提供便利的同时却也容易被攻击者利用。通过精心构造恶意的钓鱼页面可以让你收藏的书签中插入一段JavaScript代码,当受害者点击书签时会以当前浏览器标签页的域进行执行。

以上图为例,受害者打开了discord.com官网,并在这个页面点击了之前收藏的恶意的书签“Hello,World!”从而执行了一个弹窗语句,可以发现执行的源显示的是discord.com。

动态 | 美国德州一夫妇家里智能家居遭攻击被索要50枚BTC:近日,美国德克萨斯州一夫妇家里的Ring智能家居设备遭到了黑客攻击,导致其在半夜被警报给吵醒。经过一番检查,用户发现其Ring账户已被终止,且被攻击者勒索50枚比特币(市价超35万美元)。目前该夫妇已通过断电的方式来关闭Ring智能门铃,黑客的计划就此挫败。[2019/12/13]

这里有一个域的概念,浏览器是有同源策略等防护策略的,按理不属于discord.com做出的操作不应该在discord.com域的页面有响应,但书签却绕过了这个限制。

可以预见书签这么个小功能隐含的安全问题,正常添加书签的方式会明显看到书签网址:

稍微有安全意识的读者应该会直接看到网址信息明显存在问题。

当然如果是一个构造好诱导你拖拽收藏到书签栏到页面呢?可以看到Twitter链接中的演示视频就是构造了这么个诱导页面:「Dragthistoyourbookmarked」。

也就是拖着某个链接即可添加到书签栏,只要钓鱼剧本写得足够真实,就很容易让安全意识不足的用户中招。

要实现拖拽即可添加到书签栏只需要构造一个a标签,下面是示例代码:

Hello,World!

书签在点击时可以像在开发者工具控制台中的代码一样执行,并且会绕过CSP策略。

读者可能会有疑问,类似「javascript:()」这样的链接,在添加进入到浏览器书签栏,浏览器竟然会没有任何的提醒?

笔者这里以谷歌和火狐两款浏览器来进行对比。

使用谷歌浏览器,拖拽添加正常的URL链接不会有任何的编辑提醒。

使用谷歌浏览器,拖拽添加恶意链接同样不会有任何的编辑提醒。

使用火狐浏览器如果添加正常链接不会有提醒。

使用火狐浏览器,如果添加恶意链接则会出现一个窗口提醒编辑确认保存。

由此可见在书签添加这方面火狐浏览器的处理安全性更高。

场景演示

演示采用的谷歌浏览器,在用户登录Web端Discord的前提下,假设受害者在钓鱼页面的指引下添加了恶意书签,在DiscordWeb端登录时,点击了该书签,触发恶意代码,受害者的Token等个人信息便会通过攻击者设置好的Discordwebhook发送到攻击者的频道上。

下面是演示受害者点击了钓鱼的书签:

下面是演示攻击者编写的JavaScript代码获取Token等个人信息后,通过DiscordServer的webhook接收到。

笔者补充几点可能会产生疑问的攻击细节:

1.为什么受害者点了一下就获取了?

通过背景知识我们知道,书签可以插入一段JavaScript脚本,有了这个几乎可以做任何事情,包括通过Discord封装好的webpackChunkdiscord_app前端包进行信息获取,但是为了防止作恶的发生,详细的攻击代码笔者不会给出。

2.为什么攻击者会选择Discordwebhook进行接收?

因为Discordwebhook的格式为

“https://discord.com/api/webhooks/xxxxxx”,直接是Discord的主域名,绕过了同源策略等问题,读者可以自行新建一个Discordwebhook进行测试。

3.拿到了Token又能怎么样?

拿到了Token等同于登录了Discord账号,可以做登录Discord的任何同等操作,比如建立一个Discordwebhook机器人,在频道里发布公告等虚假消息进行钓鱼。

总结

攻击时刻在发生,针对已经遭受到恶意攻击的用户,建议立刻采取如下行动进行补救:

立刻重置Discord账号密码。

重置密码后重新登录该Discord账号来刷新Token,才能让攻击者拿到的Token失效。

删除并更换原有的webhook链接,因为原有的webhook已经泄露。

提高安全意识,检查并删除已添加的恶意书签。

作为用户,重要的是要注意任何添加操作和代码都可能是恶意的,Web上会有很多的扩展看起来非常友好和灵活。书签不能阻止网络请求,在用户手动触发执行的那一刻,还是需要保持一颗怀疑的心。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-5:137ms