Metinfo CMS系统被爆出网站存在漏洞,可上传任意文件到网站根目录下,从而使攻击者能够轻易的获取网站的webshell权限,对网站进行篡改与攻击,目前该网站漏洞影响范围是Metinfo 6.2.0最新版本,以及之前的全部Metinfo版本均可以利用,关于该Metinfo漏洞的详情咱们来详细的分析:php
首先该网站漏洞的利用前提是windows系统,PHP语言的版本是小于5.3,至关于旧的服务器都会按照这个环境来配置网站,咱们来看下出现漏洞的代码,Metinfo在上传方面写了一个专门的上传功能,很是的强大,使用doupfile进行上传,咱们来看下代码,以下图所示:linux
咱们从上面的代码中能够看出上传文件有一些模式,还有变量的信息,info这个变量是能够控制的,咱们看下upfile跟upload调用的方法是什么做用,追踪分析代码发现这个是用来存储上传文件的路径信息的,这2个变量值会直接将上传的路径给改变,这也是该漏洞产生的缘由,咱们接着继续分析代码的漏洞,Metinfo在使用doupfile上传的时候回对上传的文件名进行安全过滤,基本的一些脚本文件都已通过滤掉了,只能上传一些图片格式的文件,使用白名单安全机制对上传进行了严格的安全限制。程序员
看来经过改变上传文件的格式是没有办法绕过上传,咱们继续分析代码,上传文件的路径这里能够进行目录的更改,发现代码有编码的转化功能,若是路径里含有./那么就会使用iconv函数对其进行路径的转换,网站的漏洞也出在这里,根源就是这里,咱们能够绕过转换,对其进行字符的截断,低于php5.3版本的都存在这个漏洞,构造代码以下:抓包截取上传的数据包,将savepath=a.php%80\..\1.jpg 而后直接post数据到http://Metinfo/admin/index.php为何要直接post到网站后台的地址呢?是由于后台的index.php被Metinfo官方加入到白名单里,能够直接绕过sqlinsert函数的过滤,直接上传webshell到网站中,在实际的漏洞测试过程当中,并不须要登陆后台,直接post该地址便可,若是不知道数据包是如何写的,能够本身本地搭建一个Metinfo的环境,而后登陆后台,截取数据包,再修改数据库的网站地址,进行漏洞测试。web
网站漏洞修复办法与详情sql
目前官方并无对此漏洞进行修补,建议程序员对php的版本进行升级到5.3以上,或者切换服务器到linux系统,对上传目录uoload进行无PHP脚本运行权限,或者对网站目录进行安全加固防止PHP的文件的建立与生成。若是您对代码不是太熟悉的话,能够付费找专业的网站安全公司来处理,国内也就SINE安全,绿盟,启明星辰比较专业一些,关于Metinfo漏洞的修复以及加固办法,就写到这里,但愿广大的网站运营者正视起网站的安全。shell