安全公告

Microsoft 安全公告 MS02-009 - 严重

IE 中的 VBScript 处理不正确可能允许网页读取本地文件

发布时间: 2002 年 2 月 21 日 |更新时间:2003 年 5 月 9 日

版本: 1.2

最初发布: 2002 年 2 月 21 日
更新时间: 2003 年 5 月 9 日

总结

谁应阅读此公告: 使用 Microsoft® Internet Explorer 的客户。

漏洞的影响: 信息泄露

最大严重性分级: 严重

建议: 使用 IE 的客户应应用修补程序。

受影响的软件:

  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0

常规信息

技术详细信息

技术说明:

Internet Explorer 中使用帧来提供更全面的浏览体验。 根据设计,应禁止一个网站或域中的脚本访问另一个网站或域中的框架的内容。 但是,在与验证跨域访问相关的 IE 中如何处理 VBScript 时存在缺陷。 此缺陷允许一个域的脚本访问帧中另一个域的内容。

恶意用户可以使用脚本提取其他域中帧的内容,然后将该内容发送回其网站,从而利用此漏洞。 这将使攻击者能够查看用户本地计算机上的文件,或捕获用户在离开攻击者网站后访问的第三方网站的内容。 在最坏的情况下,后一种情况可能使攻击者能够了解用户名、密码或信用卡信息等个人信息。

在这两种情况下,用户必须转到攻击者控制下的站点,或者查看攻击者发送的 HTML 电子邮件。 此外,攻击者必须知道用户系统上任何文件的确切名称和位置。 此外,攻击者只能访问可在浏览器窗口中显示的文件,例如文本文件、HTML 文件或图像文件。

缓解因素:

  • 漏洞只能用于查看文件。 它不能用于创建、删除、修改或执行它们。
  • 此漏洞仅允许攻击者读取可在浏览器窗口中打开的文件,例如图像文件、HTML 文件和文本文件。 无法读取其他文件类型,例如二进制文件、可执行文件、Word 文档等。
  • 攻击者需要指定文件的确切名称和位置才能读取该文件。
  • 如果用户使用以下任一内容,将阻止电子邮件传播的攻击方案:安装了 Outlook 电子邮件安全更新的 Outlook 98 或 2000;Outlook 2002;或 Outlook Express 6。

严重性分级:

Internet 服务器 Intranet 服务器 客户端系统
Internet Explorer 5.01 适中 适中 严重
Internet Explorer 5.5 适中 适中 严重
Internet Explorer 6.0 适中 适中 严重

上述 评估 基于受漏洞影响的系统类型、其典型部署模式以及利用漏洞对它们的影响。 此漏洞会影响个人信息泄露,并且很可能对客户端系统产生影响。

漏洞标识符:CAN-2002-0052

测试的版本:

下表指示哪些当前受支持的 Internet Explorer 版本受漏洞影响。 5.01 Service Pack 2 之前的 IE 版本不再有资格获得 修补程序 支持。 仅通过 Windows® 2000 Service Pack 和安全汇总包支持 IE 5.01 SP2。

IE 5.01 SP2 IE 5.5 SP1 IE 5.5 SP2 IE 6.0
VBScript 处理

常见问题解答

漏洞的范围是什么?
这是信息泄露漏洞。 它可能允许恶意网站操作员查看访问用户的本地计算机上的文件。 此外,它可以允许恶意站点操作员在离开恶意网站后从用户的浏览会话中收集信息。 然后,此信息可以传回恶意网站,并可能包括用户名、密码或信用卡信息等个人信息。 在这两种情况下,恶意用户必须诱使目标受害者进入她控制的网站。 若要读取用户本地计算机上的信息,恶意站点操作员必须知道用户计算机上的任何文件的确切名称和位置。 该漏洞不允许攻击者在用户的计算机上添加、更改或删除文件。

导致漏洞的原因是什么?
漏洞是由于在帧内跨域处理脚本时存在缺陷。 该缺陷允许脚本违反 IE 的跨域安全模型,使网站能够读取属于另一个域的帧中的数据。

什么是脚本?
脚本 用于允许 Web 开发人员操作网页上的项。 网页上的脚本的常见用途是验证用户输入、处理页面上的控件以及与用户通信。 默认情况下,Internet Explorer 支持两种脚本语言 VBScript 和 JScript。 网站开发人员可以在其网站上使用这些编程语言之一。 此外,开发人员和站点操作员还可以选择支持其他 第三方脚本语言。 但是,必须在客户端系统上安装这些组件才能成功运行。

什么是帧?
框架是主浏览器窗口的子窗口。 例如,可以使用框架将浏览器窗口划分为左侧的目录,并在右侧显示页面。 但是,从软件的角度来看,每个框架都是一个单独的窗口,独立于任何其他窗口。 例如,这意味着浏览器中的三个帧可以显示来自三个不同的网站的内容、来自同一网站三个不同部分的内容,或来自相同网站和不同网站的内容的一些组合。

什么是 IE 的跨域安全模型?
由于每个帧实际上是一个独立的窗口,因此开发了“域”的概念,以允许将同一网站部分的框架视为逻辑整体。 例如,如果浏览器在一个框架中显示来自 www.microsoft.com 的页面,而另一帧中 www.microsoft.com/security 的页面,则它们被视为同一域的一部分。 或者,如果浏览器在一个帧中显示一个来自 www.microsoft.com 的页面,另一个框架中的另一个网站中的页面,则它们将被视为位于不同的域中。 然后,此域用作安全边界,将内容与彼此无关的网站隔离,并将同一站点中的内容组合在一起。 此域安全模型用于在帧内强制实施脚本安全性。 根据设计,脚本应该能够在同一域中的帧上执行。 例如,这允许目录框架中的单击按钮处理另一帧中同一站点的显示文本。 此外,根据设计,脚本不应能够处理来自其他域的帧中的内容。

脚本跨域的处理方式有什么问题?
如何计算域边界存在缺陷。 由于此缺陷,不同域中的帧被错误地估计为同一域的一部分。 这样脚本就可以对其域外部的帧执行操作。

攻击者如何利用此漏洞?
攻击者可以通过构建利用该漏洞的网页来尝试利用此漏洞。 然后,攻击者可以在其控制下的服务器上发布此网页,或者通过电子邮件发送给用户。

为什么攻击者能够通过 HTML 电子邮件利用此功能?
HTML 邮件本质上是通过电子邮件发送的网页。 通过创建利用漏洞的网页,然后将其作为 HTML 邮件发送,攻击者可以装载与网站相同的攻击。 如果为 HTML 电子邮件启用了脚本编写,则当邮件打开时,请双击邮件或在预览窗格中查看该邮件,脚本将执行。

我使用的是上面列出的电子邮件产品之一。 这是否意味着我不需要修补程序?
Outlook 电子邮件安全更新、Outlook 2002 和 Outlook Express 6 将保护你免受邮件传播的攻击方案。 但是,我们仍建议你安装修补程序,以确保你受到基于 Web 的方案的保护。

此漏洞使攻击者能够执行哪些操作?
此漏洞可能使攻击者能够操作其他域中其他帧的内容,并尝试将信息从另一个站点的帧提取到自己的帧中。 简言之,这意味着他们可以在网站上查看 HTML 页面,也可以通过电子邮件发送给他们。 然后,它可以从其他帧读取信息,包括一个在用户的本地计算机上打开的信息,并将该信息发送回他们的站点。 这会发生,直到用户关闭眉毛器或 HTML 电子邮件。

是否可以意外利用此漏洞?
否。 网站为了利用此漏洞而需要采取的步骤极不可能对任何合法用途都很有用。

我受到此漏洞的影响有多大?
这在很大程度上取决于你的浏览习惯。 由于利用此漏洞要求攻击者诱使潜在受害者进入其控制下的网站,因此访问熟悉、专业运营的网站的用户很可能面临的风险低于那些经常访问未知网站的风险。 安全区域是基于浏览习惯管理风险的好方法,我们建议客户考虑定期使用它们来区分已知、受信任的站点和未知的不受信任的网站。

这听起来很像框架域验证漏洞的变体,这是否相同?
这是类似的,但略有不同。 这两个问题之间的重要区别在于导致每个问题的缺陷的位置。 “帧域验证”漏洞是由 IE 中的缺陷引起的。 相比之下,此漏洞是 IE 中如何处理 VBScript 的结果。

你说这是如何处理 VBScript 的结果。 这是否意味着 JScript 不受此漏洞的影响?
正确。 JScript 不受此漏洞的影响。

第三方脚本语言也是什么?
有可能。 如果用户安装了此类语言,IE 支持使用 Python、Perl 和其他第三方脚本语言。 根据这些语言的实现方式以及它们如何处理某些域安全性检查,它们可能会受到影响。

修补程序是否解决了第三方脚本语言的漏洞?
否。 IE 的未来 Service Pack 中正在进行体系结构更改,以确保这不能成为第三方脚本语言的问题。

如何实现知道我的 VBScript 版本?
VBScript.dll文件附带了两个软件产品:Internet Explorer 和 Microsoft Windows 脚本。

  • IE 6.0:任何运行 IE 6.0 的客户(无论平台如何)都会默认安装 Windows 脚本 5.6。 IE 6.0 随 Windows 脚本 5.6 一起提供。
  • IE 5.5:任何运行 IE 5.5 的客户(无论平台如何)都会默认安装 Windows 脚本 5.5。 IE 5.5 随 Windows 脚本 5.5 一起提供。
  • IE 5.01:任何运行 IE 5.01 的客户(无论平台如何)都会默认安装 Windows 脚本 5.1。

未将 Internet Explorer 版本升级到 6.0 或 5.5 的客户很可能运行以下版本的 Windows 脚本:

  • Windows 2000:Windows 脚本 5.1
  • Win ME:Windows 脚本 5.5

如何确定正在运行的版本?
可以通过检查位于 Windows 目录的 System32 目录中的 VBScript.dll 版本来验证运行的 VBScript 版本,方法是在资源管理器中右键单击它并选择“属性”。

我已从 VBScript 的默认版本升级。 应用什么修补程序?
如果已从默认版本的 VBScript 升级,则应应用与已安装的版本相对应的修补程序版本。

  • VBScript 5.6 的客户应安装适用于 IE 6.0 的修补程序。
  • VBScript 5.5 的客户应安装可用于 IE 5.5 的修补程序。
  • VBScript 5.1 的客户应安装可用于 IE 5.01 的修补程序。

我很困惑 我不应该基于 IE 版本安装修补程序?
几乎所有情况下,你都希望基于 IE 版本安装修补程序。 VBScript 附带 IE 和 VBScript 和 IE 版本,默认情况下是相关的。 但是,如果已手动升级 VBScript 版本,则 VBScript 和 IE 的版本不再匹配。 由于大多数客户不会手动升级 VBScript,因此我们已根据默认 IE 版本标记了修补程序,以便大多数客户更轻松地识别他们需要应用的修补程序。

修补程序的作用是什么?
修补程序通过为 VBScript 设置域验证处理来更正漏洞。

修补程序可用性

下载此修补程序的位置

有关此修补程序的其他信息

安装平台:

包含在将来的 Service Pack 中:

此问题的修补程序将包含在 Internet Explorer 6.0 Service Pack 1 中。

需要重新启动:

取代的修补程序: 无。

验证修补程序安装:

  • 若要验证各个文件,请使用知识库文章Q318089中提供的修补程序清单。

注意:

第三方脚本语言可能会受到此问题的影响。 IE 的未来 Service Pack 中正在进行体系结构更改,以确保这不能成为第三方脚本语言的问题。

自此修补程序发布以来,Microsoft 已意识到少数第三方应用程序依赖于此修补程序禁用的 VBScript 中的不可预见的行为。 已对安全修补程序进行了轻微更改以修复此 bug,并确保向后兼容。

应用此修补程序后遇到第三方应用程序问题的客户应下载修订后的修补程序。 下载原始修补程序且未遇到困难的客户无需采取任何操作。

本地化

此修补程序的本地化版本正在开发中。 完成后,它们将出现在“获取其他安全修补程序”中讨论的位置。

获取其他安全修补程序:

可从以下位置获取其他安全问题的修补程序:

  • 安全修补程序可从 Microsoft 下载中心获取,可通过执行关键字 (keyword)搜索“security_patch”来轻松找到。
  • WindowsUpdate 网站提供了使用者平台的修补程序。

其他信息:

确认

Microsoft 感谢 Zentai Peter Aron,常春藤匈牙利有限公司(</https:>https:)向我们报告此问题,并与我们合作保护客户。

支持

  • Microsoft 知识库文章Q318089讨论此问题,将在发布本公告后大约 24 小时可用。 可以在 Microsoft Online 支持网站上找到知识库文章。
  • Microsoft 产品支持服务提供技术支持。 与安全修补程序关联的支持调用不收取任何费用。

安全资源:Microsoft TechNet 安全网站提供有关 Microsoft 产品安全性的其他信息。

免责声明

Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。

修改:

  • V1.0(2002 年 2 月 21 日):公告已创建。
  • V1.1(2002 年 3 月 13 日):警告部分已更新,其中包含有关某些第三方软件的次要问题以及已修改修补程序可用性的详细信息。
  • V1.2(2003 年 5 月 9 日):更新了指向Windows 更新的下载链接。

构建于 2014-04-18T13:49:36Z-07:00</https:>