聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
一名研究员发现,最近逐渐流行起来的推特替代品Mastodon的一个分叉 Glitch 中存在一个漏洞,可导致攻击者窃取Mastodon 用户的密码凭据。
PortSwigger 的研究员 Gareth Heyes指出,发现大家都往Mastodon 服务器 infosec.exchange上转移,于是他也进行了一番研究。
结果,他发现自己能够诱骗用户点击被他伪装成工具栏的恶意元素,通过Chrome的自动填充特性窃取用户存储的凭据。发现 Mastodon 允许用户发布HTML后,Heyes 从其他用户处发现自己能够通过输入 :verified: 在自己的用户名上欺骗获得官方蓝标。
他通过如下内容将 :verified: 字符串放入一个title属性中的锚点文本节点里:
输入: <abbr title="<a href='https://blah'>:verified:</a>><iframe src=//garethheyes.co.uk/>">
输出:<abbr title="<a href='https://blah'><img draggable=" false" … >><iframe src=//garethheyes.co.uk/>
Heyes 通过包含双引号的图像替换了已认证的占位符,成功绕过了HTML过滤器。Heyes指出,“由于我能够插入任意HTML,因此该过滤器被完全破坏了,不过还有一个障碍:他们使用了相对严格的同源策略。每种资源基本上都限制到infosec.exchange中,除了允许任何HTTPS URL的嵌入式框架外。”
被欺骗
然后,Heyes 发现自己能够注入表单元素,从而欺骗密码表单,而组合利用Chrome自动填充特性,就能够访问用户凭据。更糟糕的是,他还能够欺骗下面的工具条。只要用户点击被欺骗的工具条的任何元素,就能将凭据发送到攻击者服务器中。
Heyes 对Chrome进行了测试,查看是否能够在输入不可见的情况下仍然自动填充这些凭据。如果攻击者使用的 opacity 值是0,则Chrome 仍然能够填充凭据。由于同源策略,Heyes 无法使用内联风格。然而,他观察CSS文件后发现一个类“在几秒钟内”具有opacity : 0,“完美运作”。
他解释称,“将PoC 代码加入帖子文本区域并点击发布,用户会看到该帖子并点击自认为是 Mastodon 工具条的东西。之后凭据就被发送到外部服务器。在实际攻击中,凭据将会被存储,用户被重定向回站点。”
缓解措施
Heyes 解释称,使用Glitch 分支的任何Mastodon 实例都易受攻击。鉴于该服务器易受攻击,“用户基本无法保护自身安全”。他补充表示,“然而,可以仅允许通过用户交互来自动填充密码,避免凭据被盗。”
Heyes 将该问题告知Glitch,后者已发布相关补丁。
代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
原文链接
https://portswigger.net/daily-swig/mastodon-users-vulnerable-to-password-stealing-attacks
题图:Pexels License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~