MetInfo任意文件读取漏洞的修复与绕过 – FreeBuf互联网安全新媒体平台 | 关注黑客与极客

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

破绽阐发

看到\MetInfo6\app\system\include\module\old_thumb.class.php

从代码中可以看到,$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\..\..\config\config_db.php

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

终极

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

总结

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

关于WAM

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

功能特点

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

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

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

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

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

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

*本文作者Badcode,转载请注明来自FreeBuf.COM

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

评论 抢沙发

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

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

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