最近我们SINE安全在对帝国CMS系统进行代码安全审计的时候,发现该系统存在网站漏洞,受影响的版本是EmpireCMS V7.5,从帝国官方网站下载到本地,我们人工对其代码进行详细的漏洞检测与安全代码分析。共计发现三个高危漏洞,都是在网站的后台管理页面上的功能发现的。该漏洞的产生,最根源的问题是没有对get,post提交方式进行严格的安全效验与过滤,导致可以插入恶意代码到后端服务器中去处理,导致漏洞的发生。
帝国CMS系统,简单给大家介绍一下,目前很多站长,以及企业建站,都在使用该套系统,快速,便捷,易于搜索引擎收录,采用的是B/S架构开发,php语言+Mysql数据库,支持大并发同时访问,可以承载较多的用户快速的访问网站的各个页面与内容,模板自定义化,可以设置标签与自行设计网站外观,静态html生成,还有采集功能,深受广大站长和网站运营者的喜欢。
我们SINE安全技术在对该代码进行安全检测与渗透测试的手,会先大体看下代码,熟悉整个网站的架构,数据库配置文件,以及入口调用到的文件,通常调用到的安全规则是如何写的,多个方面去大体的了解该代码,目前渗透测试中,发现的网站漏洞有:SQL注入漏洞,网站敏感信息泄露,初始化安装功能漏洞,直行平行越权逻辑漏洞,任意文件上传漏洞,登录绕过漏洞,短信验证码漏洞,找回密码漏洞,数据库备份webshell,XSS跨站,CSRF漏洞等待。
首先我们检测到的是帝国安装代码功能上存在可以插入恶意代码漏洞,在install安装目录下的index.php文件中,可以查到表的前缀,也就是获取前端提交过来的参数,然后继续往下看,data目录下的fun.php代码里的参数并没有做任何的安全效验,导致可以直接插入恶意代码写入到配置文件config.php中去。漏洞详情如下图:
后台还存在get webshell漏洞,打开后台管理功能页面,选择管理首页模板,紧接着右键点击增加首页方案中,复制漏洞exp代码: 解密后是:ZWNobyAnPD9waHAgZXZhbCgkX1JFUVVFU1RbaHBdKTsnPnNoZWxsLnBocA=>echo 'shell.php
写到模板内容页面里,左键点击提交,再点击启用此方案,就在会e/admin/template/文件夹下生成一个shell.php文件。
关于帝国CMS漏洞的修复办法,对所有的get,post请求做安全过滤,也可以直接在eaddslashes2的参数里增加恶意代码的拦截机制,先检测后放行,该漏洞的利用条件是需要有后台管理员权限,利用的不是太多,建议对网站后台的管理目录进行更改,或者直接将管理员的密码设置的复杂一些。如果您对网站漏洞修复不是太懂的话,也可以找专业的网站安全公司来处理,国内SINE安全,启明星辰,绿盟,都是比较不错的,网站漏洞经常出现,也请网站的运营者多多关注EmpireCMS的官方,一有补丁就立即修复掉,将安全损失降到最低。