漏洞概要 关注数(17) 关注此漏洞
缺陷编号: WooYun-2016-182099
漏洞标题: 中国银行缤纷生活可查询任意用户信用卡账单信息
相关厂商: 中国银行
漏洞作者: ghy459
提交时间: 2016-03-08 09:50
公开时间: 2016-04-22 16:24
漏洞类型: 设计缺陷/逻辑错误
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系
Tags标签: 逻辑错误 设计不当 客户端程序设计错误
漏洞详情
披露状态:
2016-03-08: 细节已通知厂商并且等待厂商处理中
2016-03-08: 厂商已经确认,细节仅向厂商公开
2016-03-18: 细节向核心白帽子及相关领域专家公开
2016-03-28: 细节向普通白帽子公开
2016-04-07: 细节向实习白帽子公开
2016-04-22: 细节向公众公开
简要描述:
在某社区碰巧看到关于银行APP串号的讨论,想起自己用中行APP的时候貌似也碰到同样的事情,于是决定挖一波试试。
详细说明:
应用地址:https://itunes.apple.com/cn/app/zhong-guo-yin-xing-bin-fen/id525635672?mt=8
只测了iOS的客户端,Android不清楚是不是也有类似的客户端&&问题存在。我找了几位gay友测试了一下,貌似没注册过“缤纷生活”的信用卡用户不受影响,厂商可以自测一下。
问题出现在登录之后的操作。
首先我们要正常登录,拿到登录后的cookie。之后点击首页的“账单服务”,这时候客户端会发送这样一个请求:
大意就是通过登录名(手机号)去获取用户名下的卡号,返回内容如下:
这里出现了第一个问题,只要把请求中的userNm换成任意注册用户的手机号,即可查询他名下的信用卡信息。
尾号9734返回结果:
尾号1688返回结果:
=============
上面返回的内容有一项cardNo,就是指的信用卡号,可惜用的中行自己的算法加密无法解开。不过没关系,我们先记下来。(其实在APP上就可以看到卡号的前四位和后四位了,具体算法没深究)
接下进行下一步,查询账单信息。账单分为已出账单和未出账单,实际测试只有已出账单存在下面的漏洞。请求如下:
这里有几个关键的参数,userNm用户手机号,cardNo上一个请求拿到的加密卡号,billDt账单月。
返回内容太长就不贴出来了,截两个图对比一下:
尾号9734返回结果:
尾号1688返回结果:
敏感信息实在太多了,截图上各种红点。不过足够证明这是两张不一样的账单了,curTermBalance1 address3 repayDate等字段都能证明。
还有交易明细接口 /AppPrj/newbillInquiredeal.do 也存在上述缺陷,不截图证明了,那个敏感信息更多。。。
最终泄露的信息包括明文的账单地址、交易明细、用户手机号、积分信息,加密的卡号、姓名、邮箱等。
目前能找到可利用的就这三个点。测试其它功能点一换卡号直接就被登出了,猜测是“已出账单”功能忘记加某个安全措施了?
另外接口一可以用于爆破,简单跑了100个手机号没有感觉到有防爆措施,不过没有深入利用了。
漏洞证明:
请看详细说明。
修复方案:
cookie和user强对应关系。
版权声明:转载请注明来源 ghy459@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:9
确认时间:2016-03-08 16:24
厂商回复:
感谢支持。
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
登陆后才能进行评分
评论