通用跨站脚本(UXSS):漏洞的生成

本文为对《Universal Cross-site Scripting (UXSS): The Making of a Vulnerability》文章的翻译。

什么是通用跨站脚本?

常见的跨站脚本攻击目标是客户端或服务器端代码开发存在缺陷的Web网站或Web应用程序。这些攻击以脆弱的web页面为主要前提,影响的仅仅是该页面自身的用户会话。换句话说,如果用户在打开一个基于web的CRM(客户关系管理系统)应用程序时不得不浏览到易受XSS攻击的网站,那么就算攻击者对该网站进行攻击,也只能访问该网站的会话,而不能访问CRM会话。这种行为是浏览器中实现的一个安全功能。UXSS保留了XSS的基本特征:利用漏洞,执行恶意代码,但有一个主要的区别:

与常见的XSS攻击不同,UXSS是一种利用客户端本地浏览器或浏览器扩展中的漏洞来生成XSS条件并执行恶意代码的攻击。当这些漏洞被发现并利用时,浏览器的安全特性可能会被绕过或禁用。

Impact影响

这样做的最终结果是,攻击者不仅可以访问易受攻击的网页上的受感染会话,而且可以访问当前浏览器当前打开(或缓存)的网页的任何会话。攻击被触发。
简而言之,UXSS不需要一个易受攻击的网页来触发,可以渗透属于安全且书写规范的网页回话,以此来制造一个漏洞。

Web浏览器是最常用的应用程序之一,它们的开发速度很快。 Web浏览器的提供商正处于人气竞赛中,为了保持领先地位,他们需要在短时间内实现众多功能。虽然大多数提供商认为安全功能很重要,但可用性和集成功能通常是最热门的(更容易测试,更容易实现),因此,它们具有更高的优先级。由于测试安全功能需要大量技能和众多资源,因此一些主要提供商拥有奖励计划,旨在激励社区帮助提高浏览器的安全性。然而,当一个新的漏洞出现时,发现此漏洞的个人或团体有机会利用它,从而享受反复利用此类漏洞的长期利益;或报告并享受较少的福利(如果有的话)。在某种程度上,可能需要很长时间才能处理新的漏洞,并将补丁发送给最终用户。
此外,不仅浏览器本身可能存在可利用的漏洞,而且还有其中的扩展程序。大多数针对消费者的应用程序供应商都会构建浏览器扩展,以改善用户体验并利用有史以来最受欢迎的活动:Web浏览。每种浏览器类型都可以使用大量的浏览器扩展,因此无法评估其安全性以及包含可利用漏洞的可能性。

UXSS攻击不需要利用易受攻击的网页,同时存在访问非易受攻击网页的可能性,这使得UXSS成为XSS频谱中最危险和最具破坏性的攻击类型之一。 UXSS还针对易受攻击的浏览器插件或插件而不仅仅是浏览器本身,这进一步增加了其危险性。

UXSS可利用的众所周知的漏洞

1. Internet Explorer 6(或Mozilla插件)的Adobe Acrobat扩展中的漏洞:

这是一个旧的漏洞,但是,它是使用可以执行代码的扩展时可能出错的一个很好的例子。 PDF阅读器中的错误使攻击者能够在客户端执行脚本。 这是通过将脚本嵌入恶意URL(类似于其他XSS攻击)并利用扩展来在打开PDF文件时运行代码来实现的。

Stefano Di Paola和Giorgio Fedon是第一个在Mozilla Firefox的Adobe Reader插件中可利用的漏洞背景下记录和描述UXSS的人。 Adobe插件能够通过一系列未正确实现的参数来填充来自外部源的数据的文档表单,从而允许发生XSS条件。 他们的原始论文可以在这里阅读。

2. Internet Explorer 8的XSS过滤器中的缺陷:

2010年,David Lindsay和Eduardo Vela Nava在BlackHat Europe的UXSS环境中提出了这个漏洞.Internet Explorer 8带有内置的XSS过滤器,可以检测反射的XSS条件并采取纠正措施:在呈现页面之前更改响应。 在这种特殊情况下,过滤器删除了等号,但是使用了精心设计的XSS字符串,此逻辑将导致浏览器创建XSS条件。 Microsoft通过更改XSS筛选器删除的字符来做出反应。 你可以在这里找到完整的演示文稿。

3. Flash Player UXSS漏洞 - CVE-2011-2107:

2011年Flash Player插件中的一个漏洞(当时所有版本)使攻击者能够使用精心设计的.swf文件访问Gmail设置并添加转发地址。 因此,攻击者可以访问受攻击的Gmail帐户收到的所有电子邮件的副本。 Adobe已在此处确认此安全公告中的漏洞。

4.适用于Android的Chrome漏洞:

移动设备也不例外,可以成为XSS攻击的目标。 Chrome for Android中的漏洞允许攻击者通过Intent对象将恶意代码注入Chrome中加载的任意网页。 您可以在此处找到Chromium错误报告(包括示例代码)。

防御UXSS

在讨论防御UXSS时的经验法则是修补和更新所有的内容,以此来确保您的环境中使用的浏览器版本和扩展不会出现UXSS可利用的漏洞。 但是,这是否意味着你已经摆脱困境了? 没有。没有完全保证运行最新版本可以确保您的安全; 发现,发布,确认,修复漏洞和推出补丁之间存在时间差,在此期限内,您可能容易受到UXSS攻击。

防御UXSS的其他方法取决于漏洞攻击的具体细节。但是,当此信息可用时,修复该漏洞的补丁也已经可以获得并轻松地安装。

点赞

发表评论

[2;3Rer>