漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0145094
漏洞标题:众禄基金Android客户端存在越权查看账户交易信息和银行卡绑定信息漏洞
相关厂商:众禄基金
漏洞作者: 大头鬼
提交时间:2015-10-07 10:27
修复时间:2016-01-11 15:32
公开时间:2016-01-11 15:32
漏洞类型:非授权访问/认证绕过
危害等级:高
自评Rank:20
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-10-07: 细节已通知厂商并且等待厂商处理中
2015-10-12: 厂商已经确认,细节仅向厂商公开
2015-10-15: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航)
2015-12-06: 细节向核心白帽子及相关领域专家公开
2015-12-16: 细节向普通白帽子公开
2015-12-26: 细节向实习白帽子公开
2016-01-11: 细节向公众公开
简要描述:
客户端存在越权查看账户交易信息和银行卡绑定信息漏洞
详细说明:
在账户请求报文中,通过替换mctcustno的值(每个账户成功注册后,系统都会分配一个用户ID),即可查看mctcustno对应账户的交易信息、银行卡绑定信息等。
但客户端在发送请求报文中,请求数据做了MD5签名,但可通过篡改客户端或通过HOOK,在客户端程序对请求数据做MD5前,对mctcustno进行修改,此时服务端校验通过后,返回正确的响应数据。
漏洞证明:
客户端程序在发起请求时,会对请求数据做MD5签名,服务端验证签名。通过反编译客户端的Java源码分析可看出:
客户端在执行账户信息查询等操作时,都会在请求数据中写入mctcustno,服务端根据mctcustno返回对应账户数据。客户端获取mctcustno的值是通过调用com.zlfund.mobile.FundApplication类中的getMctCustNo()方法,如下图反编译代码所示:
因此可通过篡改getMctCustNo()方法,将返回值改成其他mctcustno值。我采用xposed去HOOKgetMctCustNo()方法,修改返回返回值。
账户查询操作时,将客户端请求中的mctcustno替换为1000900001,服务端返回对应数据:
账户查询操作时,将客户端请求中的mctcustno替换为1000900002,服务端返回对应数据:
银行卡绑定信息查询操作,将客户端请求中的mctcustno替换为1000900100,服务端返回对应数据:
银行卡绑定信息查询操作,将客户端请求中的mctcustno替换为1000907380,服务端返回对应数据:
修复方案:
对用户权限做严格控制。
版权声明:转载请注明来源 大头鬼@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:9
确认时间:2015-10-12 16:20
厂商回复:
CNVD确认所述情况,已经转由CNCERT向证券业信息化主管部门通报,由其后续协调网站管理单位处置.
最新状态:
暂无