2016-09-04 21:47:25
来源:安全客 作者:sdl0day_柳兮
阅读:432次
点赞(0)
收藏
作者:sdl0day_柳兮
稿费:500 RMB
0x00 概述 and DDE
前段时间看见有人写文章讲csv注入的问题,了解后发现在国外两年前已经有人提了,今天有空也来看看这个漏洞。注入漏洞作为漏洞圈的常客,一般都是由于盲目信任用户可控的数据造成的,也就是平时常说的一句话:All put is evil。
再说下DDE,windows的DDE机制基于Windows的消息机制。两个Windows应用程序通过相互之间传递DDE消息进行DDE会话(Conversation),从而完成数据的请求、应答、传输。这两个应用程序分别称为服务器(Server)和客户(Client)。服务器是数据的提供者,客户是数据的请求和接受者。
0x01 csv/xls 注入 and DDE
在Excel单元格中,已=或-开头的单元格,里面的内容会按照公式来运行,结合DDE,就可以执行一些系统命令,=DDE(“cmd”;”/C calc”;”__DdeLink_60_870516294″),如下图所示。这里测试用了office2013,注入的命令执行时弹出告警提示框是因为在CVE-2014-3524中修复过这个问题,低版本测试效果会更好。
0x02 漏洞实例测试-执行系统命令
这里我选择某个在线问卷网进行测试,首先发起一个问卷调查,然后扫码模拟普通用户进行填写,写入以下攻击代码,最后提交。
正常情况下,问卷调查结束后,问卷发起人会导出问卷调查结果到本地就行查看,当点击存在攻击代码的单元格后,即可触发命令执行;这里我导出后是xls格式(csv格式同理),打开后点击单元格,测试结果如下(当前账户:administrator权限),可以看到成功执行了我们在问卷填写提交的命令:
0x03 漏洞其他利用姿势-添加管理员账户并窃取xls中的数据
今天我又yy了一下,如果目标机器安装的office版本较低或者没有及时打补丁,我们在提交的数据中依次填入添加管理员账户命令,利用cmd /c 隐藏执行命令,同时窃取表格里的部分数据发送到攻击者的服务器,也得到目标机器的IP地址,这样如果目标机器允许3389连接,那还是有一定的概率拿下的。当然了这个概率很低,跟买彩票差不多了,但不失为一个思路,社工的时候也许会有奇效,具体利用方式如下。
0x04 csv/xls 全文数据窃取
evi1m0在他的文章中写了这么一段话,我本地没有2016的版本没有测试,所以给大家分享过来,有兴趣的同学可以试一试,可以的话欢迎分享测试结果给我。
“2016 之前的 excel 和其他的版本的连接字符串的函数 concatenate 不支持 cell range 的语法,也不能自定义函数,这样的话就没有办法简写,只能生成比较长的url,但 2016 之后的 excel 我们可以使用 concat 函数,支持传入一个 range,比如 concat(A1:A10) ,这样便能直接读取整个表格中的数据。”
0x05 漏洞防御
通用粗暴方案:过滤=或-号开头的单元格数据,过滤=(-)cmd或=(-)HYPERLINK。
当然粗暴的方案肯定会有问题,比如某些业务场景下就有输入特殊格式字符串的需求,因此替换攻击代码中的关键字符也可以试试,比如把|转换为等。
0x06 参考文章
1.http://www.contextis.com/resources/blog/comma-separated-vulnerabilities
2.http://www.n0tr00t.com/2016/05/17/CSV-Injection.html
3.http://www.securityfocus.com/bid/69351
本文由 安全客 原创发布,如需转载请注明来源及本文地址。本文地址:http://bobao.360.cn/learning/detail/2997.html