CSV文件注入漏洞简析
“对于网络安全来说,一切的外部输入均是不可信的” 。但是CSV文件注入漏洞确时常被疏忽,究其原因,可能是因为我们脑海里的第一印象是把CSV文件当作了普通的文本文件,未能引起警惕。 一、漏洞定义 攻击者通过在CSV文件中构造恶意的命令或函数,使得正常用户在使用Excel打开这个CSV文件后恶意的命令或函数被执行,从而造成攻击行为。 二、漏洞产生的原因 1、CSV文件中的几个特殊符号“+、-、@、=” 尝试在CSV单元格中输入“=1+1”,回车后,发现单元格的值变成了2,说明加号被当做运算执行了。 除了加号,“-”、“@”、“=”也会被解释为公式。 2、DDE(Dynamic Data Exchange) DDE是Windows下进程间通信协议,是一种动态数据交换机制,使用DDE通讯需要两个Windows应用程序,其中一个作为服务器处理信息,另外一个作为客户机从服务器获得信息。DDE支持Microsoft Excel,LibreOffice和Apache OpenOffice。 Excel、Word、Rtf、Outlook都可以使用这种机制,根据外部应用的处理结果来更新内容。 因此,如果我们制作包含 DDE 公式的 CSV 文件,那么在打开该文件时, Excel 就会尝试执行外部应用 。 三、漏洞演示 1、OS命令执行 通过在CSV文件中构建DDE公式