UEditor编辑器由于使用面较为广泛,其任意文件上传漏洞利用较为简单,一直以来深受攻击者的喜爱。
前言:
七一重保期间,某合作公司向我司紧急求救,APT系统出现攻击告警,现场工作人员发现有ip针对他们系统进行Ueditor 文件上传漏洞攻击,并成功上传木马文件。于是我只能又又又背上电脑出发了(苦逼的网安人)。
处置:
1、提前在电话中与客户沟通情况,建议能否先将服务器的外部通信关闭,避免再出现一些其它问题,客户同意了我的建议,简单粗暴的将服务器关闭了。
2、到现场后,查看APT系统,发现了攻击告警。
上传木马成功(这waf,关键时刻咋不起作用呢)。
3、将服务器重新启动,先将外网通道关闭,然后进入以下路径,查看问题文件。
发现就是普通的冰蝎aspx马子,悬着的心也放下一半。
4、对于文件列表中的一些有问题的文件,都先保存在了本地,然后将服务器中的文件进行了删除处理,在其中发现一些关于黄赌毒的黑页。
5、同时为了保险起见,立即对网站进行了后门扫描。
6、对攻击者IP和上传文件的域名进行分析,在威胁情报平台上都显示为恶意。
发现都是香港的IP,也没有进行备案。
5、访问攻击者的木马地址,将文件下载下来
发现只是一个gif文件和冰蝎aspx马子合成的图片马。
6、放进云沙箱运行也会报毒。
成因:
ueditor的官方网站已经停止访问了,但是我们可以在github上下载源码包:https://github.com/fex-team/ueditor/releases/tag/v1.4.3.3
1、我们首先来看net/controller.ashx 文件,我们可以看到第14行接收了一个名为action参数。
2、然后action会通过switch case去判断,当action等于catchimage(远程文件抓取)时,执行以下代码
我们去CrawlerHandler中查看,我们发现当Sources为空或长度为零时,返回"参数错误:没有指定抓取源"
所以我们测试漏洞是否存在的时候,会访问Ueditor/net/controller.ashx?action=catchimage,查看返回包是否为"参数错误:没有指定抓取源"
3、当source的值不等于空的时候,就执行下面代码
4、我们定位到Crawler方法处,65行是创建一个请求,将响应内容赋值给response
5、观察下面的这行代码,它是从响应里的ContentType去匹配是否有image。
6、如果是image,进入下面一行代码,会将文件保存在服务器中,所以只要自定义下ContentType:image/jpeg,就可以抓取任意类型的文件了,就造成了任意文件上传漏洞
tips:
可能有些朋友会有疑惑,为什么常见的利用方式是上传xxx.gif?.aspx,因为文件的后辍名是通过截断最后一个 . 来获取的(我们通过查看GetFileName()的官方文档发现,该方法是通过截取url中最后一个.来获取文件名的),url里面xxx.gif?.aspx会被默认当成xxx.gif解析但是传递给我们的文件却是.aspx结尾的文件。
复现:
1、首先访问Ueditor/net/controller.ashx?action=catchimag,发现返回"参数错误:没有指定抓取源",证明存在文件上传漏洞。
2、先上传一个html页面试一下,可以看到上传成功。
3、再传一个图片马试一下,发现也上传成功。
修复:
1、由于系统开发商赶来还需要一段时间,所以先从软件层面将漏洞修补一下。
配置防火墙策略,禁止外网ip访问admin目录(漏洞存在于admin目录下)
2、禁止外网IP访问f_load目录(上传后的文件存在于f_load目录)。
3、当用户访问admin/Ueditor/net/controller.ashx?action=catchimage时,跳转到admin/Logout.aspx页面
4、当开发人员到达现场后,立即让他们将上传成功后的回显关闭了。
总结:
当遇到类似的应急响应事件后,可以按照以下几个步骤进行处理:
1、先对需要处理的事件现场情况进行详细的了解,与客户商量先将受害服务器进行断网关机处理,如果有主机安全管理设备,先对所有主机资产进行病毒查杀。
2、先将木马文件、可疑文件保存本地,然后将服务器上的可疑文件进行清除。
3、分析木马文件是哪种类型的木马,会造成什么危害,再做出下一步处置。
4、分析漏洞成因,复现漏洞。
5、先使用waf、防火墙等设备紧急修复漏洞,再等研发人员来彻底修复漏洞。
- 本文作者: 苏苏的五彩棒
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/889
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!