揭秘Excel Open XML格式中的信息泄露漏洞与修复指南

本文详细分析了MS08-043漏洞,该漏洞影响Excel的Open XML文件格式,导致数据库连接密码被错误保存。文章提供了逐步指南,帮助用户检测和手动修复XLSX文件中的密码泄露问题。

MS08-043:如何防止此信息泄露漏洞

在本月的Excel更新中,我们解决了一个有趣的CVE(CVE-2008-3003)——这是首个影响新Open XML文件格式的漏洞(但不会导致代码执行)。这是一个信息泄露漏洞,当用户从Excel建立到远程数据源的数据连接,并勾选复选框以让Excel不将该连接中使用的密码保存到文件时,可能会出现此漏洞。在保存为新Open XML(.XLSX)文件格式时,该复选框没有效果,密码因此被错误地保存到文件中——从而形成漏洞。所以,如果您还没听说过——新的Open XML文件(扩展名以“x”结尾的Office文件,即.docx、.xlsx、.pptx)实际上是ZIP容器!事实上,如果您将文件扩展名更改为.ZIP,您可以在Winzip或Windows shell中打开新的Office Open XML文件,自己查看内容,而无需花哨的十六进制编辑器。如果您这样做——您将看到里面主要是一堆XML文件和图像文件(假设您的Office应用程序中有图像)。事实证明,为了验证/复现此错误报告,只需要Windows shell(打开重命名的Office“.zip”文件)和Notepad(编辑其中的一个XML文件)。实际上,Windows shell和Notepad就是解决此错误(如该漏洞公告的变通方案部分所述)并从您的.XLSX文件中删除意外泄露的信息所需的全部工具!

以下是您可以检查.XLSX文件是否包含不当保存的数据库连接密码的方法,以及如何删除它并自己修复文件!

  1. 备份您将编辑的XLSX文件。
  2. 在Windows XP或Windows Vista机器上,将受影响的.XLSX文件的扩展名更改为.ZIP。
  3. 使用Windows shell(即Windows资源管理器)通过双击打开ZIP文件,然后双击其中的“XL”文件夹。
  4. 在“XL”文件夹中,单击“connections.xml”并将其拖出ZIP文件到本地文件夹或桌面。
  5. 右键单击“connections.xml”文件,选择“打开方式”,然后选择“Notepad”。
  6. 定位字符串“connection=”,然后在该字符串中稍后搜索“PWD=”。删除“PWD=”之后和“;”字符之前的任何字符,因为这些是不当保存的连接密码。例如,如果您有一个带有保存连接密码的XLSX文件,您可能在connections.xml中看到类似以下的字符串:
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CONNECTIONS xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <CONNECTION id=1 saveData="1" background="1" refreshedVersion="3" type="1" name="Query from Test Machine">
  <!-- [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="this is an example of using credential to sign into database")] -->
  <DBPR command="SELECT * FROM FOO" connection="DRIVER=SQL Server;SERVER=SQLSERVER;UID=sa;PWD=sa;APP=2007 Microsoft Office system;WSID=CLIENT;DATABASE=master">
  </CONNECTION>
</CONNECTIONS>
  1. 保存connections.xml。
  2. 将connections.xml文件拖回ZIP文件夹,确保将其放置在ZIP文件内的“XL”文件夹中。 a. 注意:某些应用程序(如Winzip)默认将文件放置在ZIP存档的根目录,并且默认不会覆盖“xl”文件夹中的文件。
  3. 将ZIP文件的扩展名更改回XLSX,然后在Excel 2007中打开文档,单击“数据”菜单,然后在功能区的连接部分单击“全部刷新”,并验证您是否被提示输入密码。
  • 安全漏洞研究与防御博客作者 发布内容“按原样”提供,不提供任何保证,也不授予任何权利。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计