基于CSS和SVG的新型点击劫持攻击技术曝光

安全研究员Lyra Rebane发现了一种利用可缩放矢量图形和层叠样式表的新型点击劫持攻击方法。该技术利用SVG滤镜可跨域泄露信息的特性,违反了网络同源策略。攻击者可通过SVG滤镜创建逻辑门来处理网页像素,实现复杂的点击劫持攻击。研究员已成功演示针对Google Docs的概念验证攻击,谷歌为此漏洞报告支付了3133.70美元奖金。

安全研究员Lyra Rebane开发了一种基于可缩放矢量图形(SVG)和层叠样式表(CSS)的新型点击劫持攻击技术。

Rebane在10月的BSides塔林会议上演示了这一技术,现已发布了其方法摘要。这种尚未完全缓解的攻击利用了SVG过滤器可以跨源泄露信息的特点,违反了网络的同源策略。

点击劫持是指通过各种方式欺骗应用程序或网站用户执行非预期操作。它也被称为用户界面重定向攻击,通常涉及操纵界面元素,以便将用户输入重定向用于恶意目的。

这个术语由安全研究员Jeremiah Grossman和Robert Hansen在2008年提出,用来描述一种劫持鼠标点击事件的方法,使其可以按攻击者的意愿应用,例如让受害者点击网页提交按钮。

此后,已经开发了各种缓解措施来加强网络的基本安全模型。这些措施涉及限制不同源之间的交互方式。根据OWASP的详细说明,常见的防御措施包括:使用X-Frame-Options或内容安全策略(frame-ancestors)HTTP标头防止浏览器在框架中加载页面;防止在框架中加载页面时包含会话cookie;以及使用JavaScript防止页面在框架中加载。

尽管如此,新的变种仍在不断出现,比如去年的跨窗口伪造攻击。

Rebane在尝试使用SVG和CSS复制苹果的液体玻璃视觉失真效果时发现了她的攻击技术。在成功复制后,她发现当将SVG/CSS重建的液体玻璃效果放置在iframe中时,可以访问底层主网页中的像素。

Rebane告诉The Register,过去人们已经使用SVG进行跨源攻击,她引用了Paul Stone的"使用HTML的完美像素定时攻击"和Ron Masas的"人类侧信道攻击"。

"我认为没有其他人像我这样对跨源数据运行逻辑,"Rebane说。

Rebane的文章详细介绍了她如何使用SVG过滤器创建逻辑门来处理网页像素,使用任意计算函数来实现一种使用其他方法会过于复杂的点击劫持攻击。

"通过使用feBlend和feComposite,我们可以重建所有逻辑门,使SVG过滤器功能完备,"她的文章解释道。"这意味着我们可以编程任何我们想要的东西,只要它不是基于时间的且不占用太多资源。"

Rebane通过创建一个用于窃取Google Docs文本的概念验证攻击来演示她技术的应用。该攻击涉及一个放置在弹窗界面窗口上的"生成文档"按钮。按下时,底层代码检测弹窗并为用户输入提供验证码文本框。验证码提交按钮将建议的Docs文件添加到隐藏文本框中。

通常,这可能会被设置X-Frame-Options标头阻止。但Google Docs允许框架嵌入。

Rebane说这对于需要在第三方网站上使用的应用程序来说相对常见。"想想视频嵌入(YouTube、Vimeo)、社交媒体嵌入、地图应用、支付提供商、评论、广告等,"她解释说。"还有许多应用程序并非故意设计为可嵌入的,但缺少阻止这种情况的必要标头——这通常是API端点的情况。"

此外,Rebane说,这种攻击可以使用HTML注入在非框架目标上运行。

"有一种称为XSS的漏洞类别,涉及通过各种方式在网站上注入HTML以执行恶意JavaScript,"Rebane解释说。"攻击者能够在您的网站上注入HTML过去意味着立即失败,但现在越来越多的网站开始使用CSP,这允许网站所有者确保页面上不运行不安全的JavaScript,从而防止XSS攻击。"

Rebane说,发现此类网站的攻击者必须想办法在不使用JavaScript的情况下利用注入。

"CSS是下一个最好的选择,它可以用于许多有趣的攻击,"Rebane说,她认为CSS符合编程语言的条件。"SVG点击劫持是可以在那里使用的众多攻击之一。"

SVG点击劫持并没有彻底改变网络安全格局,但它简化了创建复杂攻击链的挑战。

Rebane说谷歌为报告该漏洞授予了3133.70美元的漏洞奖金。"这种攻击尚未修复,但目前还不清楚它是否是浏览器错误,而且它也影响其他浏览器,比如Firefox,"她说。

开发人员有方法防御SVG点击劫持。Rebane在她的演示中引用了Intersection Observer v2 API作为检测SVG过滤器何时覆盖iframe的方法。

谷歌没有立即回应置评请求。

根据Rebane的说法,3月发布的相关Chromium错误可以追溯到完美像素定时攻击及其后续版本,已被标记为"不修复"。

Q&A

Q1:什么是SVG点击劫持攻击?它是如何工作的?

A:SVG点击劫持攻击是一种基于可缩放矢量图形和层叠样式表的新型网络攻击技术。它利用SVG过滤器可以跨源泄露信息的特点,违反网络的同源策略,通过操纵界面元素来欺骗用户执行非预期操作,将用户输入重定向用于恶意目的。

Q2:这种攻击技术有什么特别之处?

A:这种攻击技术的特别之处在于可以使用SVG过滤器创建逻辑门来处理网页像素,实现功能完备的计算能力。通过feBlend和feComposite可以重建所有逻辑门,使得可以编程任何想要的功能,简化了创建复杂攻击链的挑战。

Q3:开发者如何防御SVG点击劫持攻击?

A:开发者可以使用多种方法防御,包括设置X-Frame-Options或内容安全策略HTTP标头防止浏览器在框架中加载页面,防止会话cookie在框架加载时被包含,使用JavaScript防止页面框架加载,以及使用Intersection Observer v2 API检测SVG过滤器覆盖iframe的情况。

来源:The Register

0赞

好文章,需要你的鼓励

2025

12/08

11:33

分享

点赞

邮件订阅