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

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

缺陷编号:wooyun-2015-0144312

漏洞标题:某市图书馆网站登录漏洞可泄露数万计用户身份证及借阅信息(密码规则分析)

相关厂商:广州图创计算机软件开发有限公司

漏洞作者: 算法导论

提交时间:2015-10-01 09:27

修复时间:2015-11-22 14:14

公开时间:2015-11-22 14:14

漏洞类型:账户体系控制不严

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-10-01: 细节已通知厂商并且等待厂商处理中
2015-10-08: 厂商已经确认,细节仅向厂商公开
2015-10-18: 细节向核心白帽子及相关领域专家公开
2015-10-28: 细节向普通白帽子公开
2015-11-07: 细节向实习白帽子公开
2015-11-22: 细节向公众公开

简要描述:

登录时缺少验证码

详细说明:

杭州市开通市民卡后自动开通借阅功能,默认密码就是生日,很多人没有修改,甚至很多人不知道自己可以去图书馆借书,但图书馆网站却泄露了他们的信息。
续借登录时缺少验证码,

hzlib1.jpg


hzlib2.jpg


打开浏览器调试器,可以看到登录时发送一个login请求,请求地址是http://**.**.**.**/opac3/reader/doLogin,只要传两个参数,rdid(身份证号)、rdPasswd(经过md5加密的密码),

hzlib3.jpg


就能返回response,对比密码正确返回的response和错误返回的response发现,正确时返回的html文本会带有“欢迎,XXX”的字样。杭州下辖的行政区和县级市共有13个,每个区县的身份证号前缀6位都固定,生日是中间8位,剩余尾号4位,其中最后一位是校验码是根据前17位计算出来的,有固定的算法网上一搜就搜到了。我用java程序不断请求该地址,固定身份证前14,变换后4位,昨天下午我让程序跑起来搜集出生日期在1987年7月2日到1992年3月31的杭州本地读者,到今天早上已经搜集到超过10000个用户的身份证信息,这种泄露是不可逆的,如果让程序持续跑下去,理论上可以破解所有杭州地区的已开通市民卡的身份信息。即使有些人去图书馆借过书,安全意识比较强,修改了登录密码,但密码只是6位而且都为数字,只需要发送1000000个请求,每个请求来回加上程序判断大概消耗100ms的时间,这样让程序跑7个小时左右就能暴力破解出密码。

hzlib_num.jpg


我做了统计,破解某个区县内固定出生年月的所有人的身份证需要花费50s左右。
以下是中国好声音主持人华少的身份证和工作单位信息

hzlib_huashao.jpg


漏洞证明:

这么简单就不用证明了吧,自己写个程序跑一下就知道了。

修复方案:

在登录页加入程序较难识别的验证码

版权声明:转载请注明来源 算法导论@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-10-08 14:12

厂商回复:

已收到

最新状态:

暂无