MetInfo任意文件读取漏洞的修复与绕过

404实验室内部的WAM(Web利用监控法度榜样,文末有关于WAM的先容)监控到 MetInfo 版本更新,并且自动diff了文件,从diff上来看,应该是修复了一个随意率性文件读取破绽,然则没有修复完全,导致还可以被绕过,本文便是记录这个破绽的修复与绕过的历程。

破绽简介

MetInfo是一套应用PHP和Mysql开拓的内容治理系统。 MetInfo 6.0.0~6.1.0版本中的 old_thumb.class.php文件存在随意率性文件读取破绽。进击者可使用破绽读取网站上的敏感文件。

破绽影响

MetInfo 6.0.0

MetInfo 6.1.0

破绽阐发

看到MetInfo6appsystemincludemoduleold_thumb.class.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{

public function doshow(){

global $_M;

$dir = str_replace(‘../’, ”, $_GET[‘dir’]);

if(strstr(str_replace($_M[‘url’][‘site’],”, $dir), ‘http’)){

header(“Content-type: image/jpeg”);

ob_start();

readfile($dir);

ob_flush();

flush();

die;

}

……

从代码中可以看到,$dir直接由$_GET[‘dir’]通报进来,并将../置空。目标是进入到第一个if里面的readfile($dir);,读取文件。看看if语句的前提,里面的是将$dir中包孕$_M[‘url’][‘site’]的部分置空,这里可以不用管。外貌是一个strstr函数,判断$dir中http字符串的首次呈现位置,也便是说,要进入到这个if语句里面,$dir中包孕http字符串即可。

从上面的阐发可以构造出payload,只要$dir里包孕http字符串就可以进入到readfile函数从而读取随意率性函数,然后可以应用…/./来进行目录跳转,由于../会被置空,以是终极payload如下

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

对付这个随意率性文件读取破绽,官方不停没补好,导致被绕过了几回。以下几种绕过要领均已提交CNVD,由CNVD传递厂商。

第一次绕过

根据WAM的监测记录,官方5月份的时刻补了这个破绽,然则没补完全。

看下diff:

可以看到,之前的只是把../置空,而补丁是把../和./都置空了。然则这里照样可以绕过。可以应用…..///来跳转目录,…..///颠末str_replace置空,恰恰剩下../,可以跳转。以是payload是

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

第二次绕过

在提交第一种绕过要领给CNVD之后,MetInfo没多久就更新了,来看下官方的修复要领。

diff:

这里加了一个判断,$dir要以http开首,变换一下之前的payload就可以继承绕过了。

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

第三次绕过

再次提交之后,官方知悉该绕过要领,又补了一次了。

看下diff:

看到补丁,又多加了一个判断前提,应用strpos函数查找./首次呈现的位置,也便是说不能有./。没了./,在Windows下还可以用..来跳转目录。以是payload

?dir=http….configconfig_db.php

遗憾的是,这个只能在Windows情况下面才可以。

终极

今朝在官网供下载的最新的6.1.0版本中,old_thumb.class.php这个文件已经被删除。

总结

一次次的修补,一次次的绕过,感到开拓者应该是没有理解到破绽使用的道理,不停以类黑名单的形式在修复,而黑名单的形式老是轻易被绕过。除了删除文件外,根据实际功能,可以斟酌应用白名单要领修复,例如限制所能读取的文件类型为图片类型。

关于WAM

WAM 利用监控:经由过程监控互联网开源Web利用的版本更新,自动化Diff审计源代码,发送破绽告警邮件,第一光阴发明破绽及后门植入。

功能特点

今朝已支持150种 Web 利用的版本源码监控;

支持监控 Web 利用历史版本源码包下载;

监控 Web 利用版本宣布页面自动下载更新;

自动 Diff 版本,对照文件更新,高亮显示,自动审计可疑破绽或后门;

自动邮件告警可以破绽/后门审计结果。

好消息来了,黑哥计划在2018 KCon大年夜会上直接将WAM开源宣布。

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包