2014-05-26:细节已通知厂商并且等待厂商处理中
2014-05-30:厂商已经确认,细节仅向厂商公开
2014-06-09:细节向核心白帽子及相关领域专家公开
2014-06-19:细节向普通白帽子公开
2014-06-29:细节向实习白帽子公开
2014-07-10:细节向公众公开
北京住房公积金帐号安全机制可被绕过漏洞(查询他人信息)
详细说明:设计缺陷,可以修改任何人的初始公积金账号密码(非初始密码也可以词典出来),可以查看个人信息,姓名 身份证号 手机 住址 公司 公积金详情等
一 针对默认密码的情况
北京住房公积金网站可以使用身份证号来登陆,默认密码是身份证后四位+00,如果最后一位是字母,默认密码就是最后的四个数字+00,之前可以使用默认密码登陆,现在不行了,需要凭借公积金联名卡号去登陆,或者带个人身份证去公积金管理中心修改默认密码。
通过抓包发现可以绕过默认密码的检测,通过http://www.bjgjj.gov.cn/wsyw/wscx/gjjcx-edit.jsp直接去修改默认密码,就可以通过身份证号去登陆了,需要通过GET提交bh参数,值其实就是身份证号+00 的base64编码
先通过该接口去测试下是不是默认密码
http://www.bjgjj.gov.cn/wsyw/wscx/modfy.jsp?bh=MTEwMXXXXXXXXXXEyMDg2MTQ2MDA=
可以登陆查看个人信息,然后去修改默认密码
http://www.bjgjj.gov.cn/wsyw/wscx/gjjcx-edit.jsp?bh=MTEwMXXXXXXXXXXEyMDg2MTQ2MDA=
修改成功,去登陆
二 针对非默认密码的情况
如果某人的密码不是默认的,也可以通过字典来遍历,因为密码被限制为6位数字,所以时间不是问题。
遍历密码的URL就用这个http://www.bjgjj.gov.cn/wsyw/wscx/modfy.jsp?bh=MTEwXXXXXXNDEyMDg2MTQ2MDA= ,因为无需验证码,可以不停的提交。
通过抓包发现,提交的密码是加密的
查看源码,发现了密码的加密信息
提交的时候填写的密码是888888,验证下
果然是,具体算法 http://www.bjgjj.gov.cn/wsyw/wscx/js/Encrypt.js
通过该js加密方法生成6为数字的字典,然后burp跑一下,就可以得到某个人的登陆密码。
测试的时候发现网站会偶尔出程序错误的页面,稍等片刻再尝试就好了
修复方案:
加强权限控制
提高网站支持的密码位置
漏洞回应 厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2014-05-30 17:51
厂商回复:最新状态:
暂无