metinfo 全版本通杀SQL注入漏洞 远程执行代码分析与修复



        近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危

的sql注入漏洞,攻击者可以利用该漏洞对网站的代码进行sql注入攻击,伪造恶意的sql非法

语句,对网站的数据库,以及后端服务器进行攻击,该metinfo漏洞影响版本较为广泛,metinfo

6.1.0版本,metinfo 6.1.3版本,metinfo 6.2.0都会受到该网站漏洞的攻击。

 
 
metinfo建站系统使用的PHP语言开发,数据库采用的是mysql架构开发的,在整体的网站使

用过程中,简单易操作,可视化的对网站外观进行设计,第三方API接口丰富,模板文件较多

,深受企业网站的青睐,建站成本较低可以一键搭建网站,目前国内使用metinfo建站的网站

数量较多,该metinfo漏洞会使大部分的网站受到攻击影响,严重的网站首页被篡改,跳转到

其他网站,以及网站被劫持跳转到恶意网站上,包括网站被挂马,快照被劫持等情况都会发生。
 
关于该metinfo漏洞的分析,我们来看下漏洞产生的原因:
 
 
该漏洞产生在member会员文件夹下的basic.php代码文件:
 

 
metinfo独有的设计风格,使用了MVC框架进行设计,该漏洞的主要点在于使用了auth类的调用

方式,在解码加密过程的算法中出现了问题,我们再来看下代码:

 
 
通常加密,以及解密的算法是不可以可逆的,但是metinfo写的代码可以进行伪造函数值进行逆

算,我们看这个构造的恶意函数,这里的key值是从前端met_webkeys值里进行获取,将获取到

的webkeys值进行写入,并赋值到配置文件里,config目录下的config_safe.php代码里。我们通

过查看这个代码,发现写入的值没有办法进行PHP脚本的执行,本来以为可是伪造key值进行写

入木马,发现行不通,但是在这个伪造key值的过程可以进行sql注入攻击,采用是延时注入方式

进行攻击,GET请求,以及post请求方式,cookies方式都可以sql注入成功,下面我们来测试下

sql注入:

 
 
GET请求的方式进行注入:
 
 
GET /admin/index.php?n=user&m=web&c=register&a=doemailvild HTTP/1.1
 
Cookie:
p=00c7%2FDBwD23b41olxVCthTvDDTRBhldmrrdyA8S3t%2F3yAl4QZ0P%2FSfOS5zlB  

 
 
把具体的SQL注入语句放到 cookie中进行攻击,我们发现注入成功了。上面这个注入普通用户访

问即可成功。下面这个注入方式需要用户登录权限,注册一个普通账户,然后抓取cookies值进行

伪造sql注入语句掺杂到cookies里,进行注入,代码如下:

 
/admin/index.php?n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1
 
Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr;<

自己抓取当前登录会员的cookie值>
 
 
关于metinfo漏洞的修复建议,以及安全方案
 
目前metinfo最新版本发布是2019年3月28日,6.2.0版本,官方并没有针对此sql注入漏洞进行修

复,建议网站的运营者对网站的后台地址进行更改,管理员的账号密码进行更改,更改为数字+

字符+大小写的12位以上的组合方式,对网站的配置文件目录进行安全限制,去掉PHP脚本执行

权限,如果自己对代码不是太熟悉,建议找专业的网站安全公司来处理修复漏洞,国内SINE安全

,以及绿盟,启明星辰,都是比较不错的漏洞修复公司。
分享: