MetInfo是一款基于PHP+mysql数据库开发的企业建站代码,在优化以及功能上,包括移动
端,自适应,多款模板免费使用,内含多种语言,中英双语,适合外贸建站,在搜索优化上比较
友好,深受各大企业公司以及建站公司的喜爱。最近一次的更新时间为2018年1月29日,MetInfo
6.0.0版本。支持nginx、apache、iis等各种服务器环境。
对MetInfo进行网站安全检测发现,存在网站漏洞,是基于PHP版本的覆盖变量漏洞。PHP覆盖变
量漏洞通俗来讲是通过自定义的变量值来更换PHP版本里默认的变量值的一个漏洞,这个漏洞基本
上不会造成太大的威胁,但是这个覆盖变量漏洞会改变PHP代码程序设计的逻辑功能,使原有的
PHP安全出现问题。
量漏洞通俗来讲是通过自定义的变量值来更换PHP版本里默认的变量值的一个漏洞,这个漏洞基本
上不会造成太大的威胁,但是这个覆盖变量漏洞会改变PHP代码程序设计的逻辑功能,使原有的
PHP安全出现问题。
MetInfo 网站漏洞检测中比较危险的几个函数
1.import_request_variables()变量函数
2.extract()变量函数
3.register_globals=on 变量函数
4.parse_str()变量函数
5.$$
register_globals=on 变量函数是通过前端网站注册用户那里,来传递注册的值,当属性为on值,
用户注册传递过来的值会被当成全局的变量值来注册,而当register_globals=off,注册的值就需
要到程序代码的数组里去获取当前的变量值。
用户注册传递过来的值会被当成全局的变量值来注册,而当register_globals=off,注册的值就需
要到程序代码的数组里去获取当前的变量值。
extract() 变量函数,是从程序代码里的数组来获取网站的符号表,这个函数使用的都是数组的键
名来使用一个变量名,变量名里的每个元素,都会对应当前网站里的符号表,并自动创建相应的
变量名。Sine安全公司是一家专注于:网站安全、服务器安全、网站安全检测、网站漏洞修复,渗
透测试,安全服务于一体的网络安全服务提供商。
名来使用一个变量名,变量名里的每个元素,都会对应当前网站里的符号表,并自动创建相应的
变量名。Sine安全公司是一家专注于:网站安全、服务器安全、网站安全检测、网站漏洞修复,渗
透测试,安全服务于一体的网络安全服务提供商。
上面的几个函数就大体的跟大家讲解一下,关于MetInfo 漏洞,存在于网站根目录下include文
件夹下的common.inc.php里的第30到45行的代码里,这个代码是接收于GET、POST、cookies、
方式传输进来的参数,在这几种提交方式上,存在着MetInfo PHP版本覆盖变量的漏洞,我们来
看下代码:
件夹下的common.inc.php里的第30到45行的代码里,这个代码是接收于GET、POST、cookies、
方式传输进来的参数,在这几种提交方式上,存在着MetInfo PHP版本覆盖变量的漏洞,我们来
看下代码:
上面代码的写法,会直接造成php覆盖变量漏洞,即使代码里写明了变量,但还是会被自定义的变
量值给覆盖掉,导致可以执行恶意的变量值,在MetInfo用户密码找回功能上可以利用该php 覆盖
变量漏洞进行找回管理员密码操作,进而导致管理员后台被攻击者入侵,并上传webshell进行篡改
并提权等攻击情况。
量值给覆盖掉,导致可以执行恶意的变量值,在MetInfo用户密码找回功能上可以利用该php 覆盖
变量漏洞进行找回管理员密码操作,进而导致管理员后台被攻击者入侵,并上传webshell进行篡改
并提权等攻击情况。
MetInfo 密码找回漏洞利用的是admin目录下的admin文件夹里的getpassword.php文件,我们
看下代码:
看下代码:
代码里的前面写的基本都是从数据库进行查询匹配,并调用common.inc.php代码,switch语句是
找回密码的逻辑控制语句。其中$post是未能成功发送的邮件内容,然后根据$met_host指定的地
址将邮件内容发送过去,$met_host 在程序的值指定为app.metinfo.cn,应该是metinfo官方设置
的邮件转发服务器.
当站长自身设置的邮件服务器不起作用时先将邮件内容通过http请求发送此服务器,再由此服务器
发送密码重置邮件。但是这个$met_host的值由于变量覆盖的原因导致可以被任意设置,可以将密
码重置邮件的内容发送到我们指定的服务器。前提是jmailsend发送失败,这里再来看一下jmail
send函数,在文件/include/jmail.php中。Sine安全公司是一家专注于:网站安全、服务器安全、
网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
找回密码的逻辑控制语句。其中$post是未能成功发送的邮件内容,然后根据$met_host指定的地
址将邮件内容发送过去,$met_host 在程序的值指定为app.metinfo.cn,应该是metinfo官方设置
的邮件转发服务器.
当站长自身设置的邮件服务器不起作用时先将邮件内容通过http请求发送此服务器,再由此服务器
发送密码重置邮件。但是这个$met_host的值由于变量覆盖的原因导致可以被任意设置,可以将密
码重置邮件的内容发送到我们指定的服务器。前提是jmailsend发送失败,这里再来看一下jmail
send函数,在文件/include/jmail.php中。Sine安全公司是一家专注于:网站安全、服务器安全、
网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
然后我们来构造一下密码找回的链接以及exp,看到可以重置密码成功。