漏洞公告分析
- 概述
一般的建站系统在发现代码漏洞时会发布漏洞公告,告知开发者相关威胁,并发布相关细则。MetInfo采用PHP+Mysql架构,是一款对SEO非常友好、功能全面、安全稳定、支持多终端展示并且使用起来极其简单的企业建站软件。用户可以在不需要任何编程的基础上,通过简单的设置和安装就能够在互联网搭建独立的企业网站,能够极大的降低企业建站成本。下面我们看一下漏洞细则。
- 漏洞公告分析
- 概述
披露日期:2013 年 7 月 25 日
严重程度:高
漏洞概述:全局函数覆盖导致文件包含漏洞
影响版本:MetInfo 5.1.3
解决方案:升级版本5.2.0
-
- 漏洞描述
文件包含漏洞,特定情况下通过URL路径可以包含动态执行文件入侵网站
-
- 漏洞测试POC
http://www.test.com/ about/?module=../robots.txt&fmodule=7
漏洞分析
MenInfo文件包含漏洞
漏洞描述
程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
分析过程
如图1所示,目录结构可以分析出该url所调用的函数应该网站目录下的adout目录中。
图1
我们知道默认应该是index.php,并调用了module和fmodule,应用程序的基础函数在/ include目录下。如图2所示。
图2
我们打开包含的文件/include/module.php去跟踪$fmodule和$module变量的值,可以发现$fmodule和$module没有赋值,在fmodule=7时造成了漏洞。如图3所示。
图3
接着,我们进行漏洞验证。结合我们刚刚打开的网站,输入这个网址:localhost/MetInfo5.1.7/about/?module=../robots.txt&fmodule=7。如图4所示。
图4
上传一个phpinfo.txt文件,如图5所示。
图5
安全隐患
我们可以看到,我们通过这种方式,包含了跟目录的robots.txt文件,证明该漏洞确实存在,如果在该web程序下可以上传文件,便可以包含文件,危害巨大。
安全修复
当fmodule=7时,$module的规则将不起作用,因为代码之前并没有为$module赋值。提前为$module赋值,如图6所示,在文件83行处添加$module='';
图6
下载链接(百度网盘)
链接:https://pan.baidu.com/s/1vKLgd38R2m5Y7RNi7onF_g
提取码:n183