文件包含漏洞利用的几种方法

文章目录

  • 安装环境
  • 启动环境
  • 漏洞花式利用
    • 蚁剑连接图片马
    • 读取敏感文件(hosts)
    • 读取该网站的php源码
  • 代码审计

安装环境

安装phpstudy,下载MetInfo 5.0.4版本软件,复制到phpstudy目录下的www目录中。

打开phpstudy,访问浏览器127.0.0.1/MetInfo5.0.4/install/index.php,打开Meinfo 5.0.4主页,点击下一步、下一步,到数据库设置中配置数据库信息,数据库名设为met1,密码设为root:

文件包含漏洞利用的几种方法_第1张图片

填写管理员设置,设置用户名,密码设为root,手机号码和电子邮箱随便填写:

文件包含漏洞利用的几种方法_第2张图片

点击保存设置后显示安装完成:
文件包含漏洞利用的几种方法_第3张图片

启动环境

安装成功后打开网页:
文件包含漏洞利用的几种方法_第4张图片

漏洞花式利用

漏洞原理

在MetInfo软件的127.0.0.1/MetInfo5.0/about/index.php 页面存在文件包含漏洞,在这里上传文件可以利用这个漏洞

蚁剑连接图片马

访问漏洞点127.0.0.1/MetInfo5.0/about/index.php页面,用fmodule和module参数上传图片马:

?fmodule=7&module=../upload/file/muma.gif

上传成功后用hackbar尝试输入打开,发现一堆乱码,但是打开成功:

文件包含漏洞利用的几种方法_第5张图片

打开蚁剑,输入上面的地址,测试连接成功,连接成功获取webshell:

文件包含漏洞利用的几种方法_第6张图片

读取敏感文件(hosts)

用相对路径读取hosts文件:

?fmodule=7&module=../../../../../../windows/system32/drivers/etc/hosts

如图,读取成功:

文件包含漏洞利用的几种方法_第7张图片

用绝对路径读取hosts文件:

?fmodule=7&module=c:/windows/system32/drivers/etc/hosts

读取成功:
文件包含漏洞利用的几种方法_第8张图片

读取该网站的php源码

?fmodule=7&module=php://filter/read=convert.base64-encode/resource=show.php

得到base64的源码密文:

文件包含漏洞利用的几种方法_第9张图片

利用工具进行解码,得到网站的源码:

文件包含漏洞利用的几种方法_第10张图片

代码审计

查看C:\phpStudy\WWW\MetInfo5.0.4\include目录下的module.php文件,从第119行看找到下面代码:

if($fmodule!=7){
	if($mdle==100)$mdle=3;
	if($mdle==101)$mdle=5;
	$module = $modulefname[$mdle][$mdtp];
	if($module==NULL){okinfo('../404.html');exit();}
	if($mdle==2||$mdle==3||$mdle==4||$mdle==5||$mdle==6){
		if($fmodule==$mdle){
			$module = $modulefname[$mdle][$mdtp];
		}
		else{
			okinfo('../404.html');exit();
		}
	}
	else{
		if($list){
			okinfo('../404.html');exit();
		}
		else{
			$module = $modulefname[$mdle][$mdtp];
		}
	}
	if($mdle==8){
	if(!$id)$id=$class1;
	$module = '../feedback/index.php';
	}
}

这段代码的if语句中如果fmodule不等于7,就会给module做初始化,等于7不会做初始化。

而在C:\phpStudy\WWW\MetInfo5.0.4\about下的index.php文件中

有下面代码:


module是前面没有赋值的参数,require_once做module的文件包含,如果fmodule=7而module没有赋值,页面的回显就会空白。

你可能感兴趣的:(网络安全,漏洞复现,文件包含漏洞,文件上传漏洞,网络,安全)