PHP网站有漏洞该如何修复与防范

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP网站有漏洞该如何修复与防范相关的知识,希望对你有一定的参考价值。

php网站有漏洞该如何修复与防范

分类专栏: 网站被篡改 服务器安全 网站安全 如何防止网站被黑 如何防止网站被侵入 如何防止网站被挂马 网站安全服务 怎么查找网站漏洞 MetInfo漏洞修复 ecshop漏洞修复 ecshop网站安全修补 wordpress漏洞修复 网站被黑怎么修复 网站安全检测 百度网址安全中心 网站安全
版权
近日,我们SINE安全对metinfo进行网站安全检测发现,metinfo米拓建站系统存在高危的sql注入漏洞,***者可以利用该漏洞对网站的代码进行sql注入***,伪造恶意的sql非法语句,对网站的数据库,以及后端服务器进行***,该metinfo漏洞影响版本较为广泛,metinfo6.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安全,以及绿盟,启明星辰,都是比较不错的网站漏洞修复公司。

以上是关于PHP网站有漏洞该如何修复与防范的主要内容,如果未能解决你的问题,请参考以下文章

PHP网站常见安全漏洞,及相应防范措施总结

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

PHP网站常见安全漏洞 及相应防范措施总结

使用sqlmap对某php网站进行注入实战及安全防范

php反序列化网站漏洞修复指南

网站漏洞检测 之后台php语句拼接webshell漏洞