MetInfo5.0文件包含漏洞

MetInfo历史版本与文件

环境在这里下载,使用phpstudy搭建

我们来看到这个index.php,如下图所示,其中定义了fmodule变量与module变量,其中require_once语句表示将某个文件引入当前文件,在这个代码中,通过require_once引入了module.php,并且最后引入了module变量,这就是文件包含的入口,如果我们能控制module的值,就很可能存在文件包含漏洞

MetInfo5.0文件包含漏洞_第1张图片

进入module.php分析源码

MetInfo5.0文件包含漏洞_第2张图片

如图所示代码,如果我们传f m o d u l e不 为 7 然后对我们的module进行初始化赋值,这是我们没办法控制如果的,所以我们不能让这个程序进入这个条件,因此我们需要控制变量f m o d u l e 为 7 ,这样程序就不会对 fmodule为7,从而达到控制$module变量的值的目的。

payload 

/about/index.php?fmodule=7&module=c:/windows/system32/drivers/etc/hosts

MetInfo5.0文件包含漏洞_第3张图片

文件包含还有一个问题,如果还存在文件上传漏洞,那么甚至可以利用文件包含执行图片马,include会自动执行图片中的PHP语句

MetInfo5.0文件包含漏洞_第4张图片

如图,这是一个图片马

MetInfo5.0文件包含漏洞_第5张图片

MetInfo5.0文件包含漏洞_第6张图片

文件包含的防御手段

尽量少的使用动态包含;

严格过滤被包含文件的路径;

将参数allow_url_include 设置为Off;

使用参数open_basedir 限定文件访问范围:

你可能感兴趣的:(网络安全)