
Microsoft Office Onenote 2007 (CVE-2014-2815) ".ONEPKG" 文件目录遍历漏洞导致任意代码执行
Microsoft Office OneNote 2007 (CVE-2014-2815) ".ONEPKG" 文件目录遍历漏洞导致任意代码执行 Microsoft Office OneNote 2007 (CVE-2014-2815) ".ONEPKG" 文件目录遍历漏洞导致任意代码执行
OneNote 2007 存在一个漏洞,该漏洞会导致程序解压 ".onepkg" 文件中包含的文件(该文件使用 "MS CAB 格式"),通过使用文件名中的父目录 ".." 将其解压到系统中的任意位置。 由于 OneNote 也不检查文件扩展名,因此可以将不安全文件解压到任意位置。
在 Windows XP 上,标准用户对系统中的大多数位置拥有写入权限,因此攻击者可以将 DLL 文件 (ntshrui.dll) 解压到 Microsoft Office 安装目录,该文件会在 OneNote 处理完 ".onepkg" 文件后立即加载:
c:\program files\microsoft office\office12\ntshrui.dll
在 Windows Vista 及以上版本中,标准用户受 "UAC" 功能限制,只能将文件解压到当前用户的配置文件子目录中。可以将可执行文件解压到启动文件夹,这也会在计算机重新启动时导致任意代码执行。
要复现此漏洞,请使用 CAB 压缩软件(例如 'makecab.exe')或您选择的支持 MS CAB 格式的编程语言的 IDE,并在新的 CAB 存档中插入长文件名。 然后通过将字符替换为父目录 ".." 来编辑文件名。 将生成的 CAB 存档重命名为 ".onepkg"。
在此 PoC 中,使用了 Windows Write 应用程序,并将其放置在启动文件夹中,我将其命名为:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWrite.exe
然后,通过使用遍历技术,CAB 存档中的文件名变为:
......\roaming\microsoft\windows\start menu\programs\startup\Write.exe
受影响的版本:MS Office 2007 SP3 测试环境:Windows XP SP3、Vista SP2、7 SP1 + Office 2007 SP3(未打补丁) (其他操作系统可能也容易受到影响)