发现Metinfo CMS系统在网站中存在漏洞,任何文件都可以上传到网站的根目录,使得攻击者可以轻松获得网站的webshell权限,对网站进行篡改和攻击。目前网站的漏洞是Metinfo 6.2.0的最新版本,Metinfo以前的版本都可以使用。让我们详细分析一下这个漏洞的细节:
首先,利用这个网站漏洞的前提是windows系统,PHP语言版本小于5.3,也就是说老服务器会根据这个环境来配置网站。我们来看看有漏洞的代码。Metinfo在上传中写了一个特殊的上传功能,非常强大。是doupfile上传的。让我们看看代码,如下图所示:
从上面的代码可以看出,上传的文件有一些模式和变量信息,变量信息是可以控制的。我们看看upfile和upload调用的方法的功能,跟踪分析代码发现这是用来存储上传文件的路径信息的。这两个变量值会直接改变上传路径,这也是造成漏洞的原因。我们继续分析代码漏洞。使用doupfile上传时,Metinfo会安全地过滤上传的文件名。一些基本的脚本文件已经过滤掉了,只能上传一些图片格式的文件。使用白名单安全机制严格限制上传。
似乎没有办法通过改变上传文件的格式来绕过上传。我们继续分析代码,目录可以在这里更改。我们发现代码具有编码转换功能。如果路径包含。/,我们会用iconv函数转换路径,网站的漏洞也在这里。根本原因就在这里。我们可以绕过转换并截断其字符。早于php5.3的所有版本都存在该漏洞,构造代码如下:抓取上传的数据包,send savepath=a.php%80...jpg,然后直接把数据发布到http://metinfo/admin/index.php,为什么直接发布到网站后台的地址?原因是后台index.php已经被Metinfo正式加入白名单,可以直接绕过sqlinsert功能的过滤,将webshell上传到网站。在实际的漏洞测试过程中,只需要直接发布地址,不需要登录后台。如果不知道数据包是怎么写的,可以在本地搭建一个Metinfo环境,登录后台,截取数据包,然后修改数据库的网址进行漏洞测试。
网站漏洞修复的方法和细节
目前官方还没有修复这个漏洞。建议程序员将php版本升级到5.3以上,将服务器切换到linux系统,在没有PHP脚本权限的情况下运行上传目录uoload,或者保护网站目录,防止PHP文件的创建和生成。如果不熟悉代码,可以付费找专业的网站安全公司处理。在国内,SINE安全更专业,NSFOCUS和金星星更专业。我在这里写一下Metinfo漏洞的修复和加固方法,希望广大网站运营者正视网站的安全性。
1.《doup 网站漏洞修复公司 Metinfo 6.2.0上传文件漏洞的修复与安全加固》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《doup 网站漏洞修复公司 Metinfo 6.2.0上传文件漏洞的修复与安全加固》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1070738.html