记一次MetInfo6.0.0文件包含漏洞复现

Posted 不是为了猿而圆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次MetInfo6.0.0文件包含漏洞复现相关的知识,希望对你有一定的参考价值。

记一次MetInfo漏洞复现


根据reebuf作者进行漏洞复现,原地址:【传送门


MetInfo企业网站管理系统是一款开源cms建站系统,可以帮助用户轻松搭建网站,支持电脑网站、手机网站、微信公众号三大网络入口为一体的建站软件.如果你使用MetInfo企业网站管理系统搭建网站,你只需要进入网站后台,即可轻松更改管理网站,简单方便.只需一个后台,就可以便捷的管理电脑网站、手机网站、微信公众号、信息内容都可以一致同步推送.微信公众号管理系统让你无需支付任何费用就可以使用开发模式,无任何限制,并且能够免费使用开发模式实现的功能。

漏洞简介:

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

漏洞影响版本:

MetInfo 6.0.0~6.1.0

软件下载地址

MetInfo 6.0.0

开始复现

  • 下载MetInfo 6.0.0版本软件,复制到phpstudy下的www里

  • 开启phpstudy,并访问浏览器,打开MetInfo

  • 开始安装

  • 下载完成,打卡burpsuite,进入网站,输入include.thumb.php进行抓包分析

  • 使用payload绕过,进行文件读取

  • ?dir=.....///http/.....///config/config_db.php
    
  • 能够响应成功,可是文件没有读取成功

  • 使用第二个payload绕过

  • ?dir=http/.....///.....///config/config_db.php
    
  • 能够响应成功,可是文件也没有读取成功

  • 使用第三个payload绕过

  • ?dir=http\\..\\..\\config\\config_db.php
    
  • 试着读取不同的敏感文件,同样成功!

  • 敏感文件读取成功!复现成功。

代码分析:

可以打开app\\system\\include\\module\\old_thumb.class.php这个php文件,进行观察和学习

<?php
# MetInfo Enterprise Content Management System
# Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved.

defined('IN_MET') or exit('No permission');

load::sys_class('web');

class old_thumb extends web	#old_thumb类

      public function doshow() #doshow方法
        global $_M; #全局变量 $_M

         $dir = str_replace(array('../','./'), '', $_GET['dir']);
	#$dir直接由$_GET['dir']传参,并将../和./过滤

        if(substr(str_replace($_M['url']['site'], '', $dir),0,4) == 'http' && strpos($dir, './') === false)
   #使用substr函数提取字符串,从(str_replace($_M['url']['site'], '', $dir)的位置0开始取4个字符串。
   #(str_replace($_M['url']['site'], '', $dir):是将$dir中包含$_M['url']['site']进行过滤掉 ' '。
   #使用strpos函数查找$dir中的./首次出现的位置,并进行过滤。
   #可以使用..\\来跳转目录【?dir=http\\..\\..\\config\\config_db.php】<—进行跳转
            header("Content-type: image/jpeg");
            ob_start();
            readfile($dir);
            ob_flush();
            flush();
            die;
        

        if($_M['form']['pageset'])
          $path = $dir."&met-table=$_M['form']['met-table']&met-field=$_M['form']['met-field']";

        else
          $path = $dir;
        
        $image =  thumb($path,$_M['form']['x'],$_M['form']['y']);
        if($_M['form']['pageset'])
          $img = explode('?', $image);
          $img = $img[0];
        else
          $img = $image;
        
        if($img)
            header("Content-type: image/jpeg");
            ob_start();
            readfile(PATH_WEB.str_replace($_M['url']['site'], '', $img));
            ob_flush();
            flush();
        

    


# This program is an open source system, commercial use, please consciously to purchase commercial license.
# Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved.
?>

substr函数

strpos函数

如有错误!还请指教!

PHP代码审计 | 记一次CMS代码审计


记录一下代码审计的分析流程。

1.系统重装漏洞
利用条件

安装完成后未删除install.php文件。

漏洞分析

定位到install.php,第6行位置

判断了是否存在install.lock文件,然后没有下文了。。。可能是开发失误。

漏洞复现

安装完成

PHP代码审计 | 记一次CMS代码审计

然后访问install.php 可以重装

PHP代码审计 | 记一次CMS代码审计

2.后台xss(滑稽)

PHP代码审计 | 记一次CMS代码审计

3.sql语句暴露

PHP代码审计 | 记一次CMS代码审计

4.后台sql注入(鸡肋)
漏洞复现

访问url: http://127.0.0.1/uqcms/index.php/admin/ad/save

post提交数据 alias=1#&id=1 and updatexml(1,concat(0x7e,(select/**/user()),0x7e),1)#&name=2&px=0

PHP代码审计 | 记一次CMS代码审计

漏洞分析

admin/ad_class.php 第62行

PHP代码审计 | 记一次CMS代码审计

通过P函数获取id的值,跟进P函数

PHP代码审计 | 记一次CMS代码审计

因为传入的是false,去掉空格后直接返回,没有任何过滤。

5. 前台sql注入
利用条件

需要注册一个会员账号,

漏洞复现

PHP代码审计 | 记一次CMS代码审计

漏洞分析

home/address.class.php 文件,第35行位置

PHP代码审计 | 记一次CMS代码审计

通过P函数获取后直接传入sql语句进行查询。

sql注入在这套cms里应该是不少…,以上只是举个例子,开发者把希望寄托在了360_safe.php提供的过滤规则上… ,虽然过滤大部分,但是没有过滤报错函数,POST方式没有过滤单引号。

6. 文件上传

本地上传正常图片也不行,没进一步测试,附上先知社区大佬分析

https://xz.aliyun.com/t/6075

推荐阅读:

https://xz.aliyun.com/t/6075


Awvs 12.0.190902105    Linux版本

链接:https://pan.baidu.com/s/18o4Ol3Tp16Ud4_E999EVpw

提取码:myd6

Linux版本安装后登陆下Web页面

1.使用patch激活

2.license_key随便填

参考来源:tkcharlotte‘s blog

如有侵权,请联系删除

以上是关于记一次MetInfo6.0.0文件包含漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现

记一次漏洞挖掘网络安全

记一次安全漏洞分析

文件年包含漏洞之——tomcat CVE-2020-1938漏洞复现

记一次网站渗透的漏洞挖掘记录

内网安全-记一次内网靶机渗透