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

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

缺陷编号:wooyun-2015-0139942

漏洞标题:京东商城Android客户端之用户隐私风险&伪造

相关厂商:京东商城

漏洞作者: 骑虎打狗

提交时间:2015-09-09 15:07

修复时间:2015-12-12 10:32

公开时间:2015-12-12 10:32

漏洞类型:用户敏感数据泄漏

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-09: 细节已通知厂商并且等待厂商处理中
2015-09-13: 厂商已经确认,细节仅向厂商公开
2015-09-16: 细节向第三方安全合作伙伴开放
2015-11-07: 细节向核心白帽子及相关领域专家公开
2015-11-17: 细节向普通白帽子公开
2015-11-27: 细节向实习白帽子公开
2015-12-12: 细节向公众公开

简要描述:

本漏洞针对京东商城Ver4.3.1最新版Android客户端。
由于京东商城Android客户端获取到服务器数据后存放的策略问题,可导致用户的隐私暴露。

详细说明:

上个漏洞: WooYun: 京东商城Android客户端之Update伪造漏洞(详细测试过程) 已经显示京东服务器返回的数据为JSON格式,所以在客户端捕捉关键信息的时候一定是关键字罗列,如下图所示:

8.jpg


9.jpg


发现他们都是通过一个方法获取的:com.jingdong.common.utils.JSONObjectProxy的getStringOrNull();
这样就有利用的源头了 啧啧~~

漏洞证明:

1.输出对应字符串的确认。通过二次打包客户端,插入暗桩:

10.jpg


输出如下:

11.jpg


可见,升级提示符是经过getStringOrNull()方法的。通过查找登录用户的各种隐私资料是经过optString()方法的:

12.jpg


2.在ROOT的手机上写个外部程序,通过钩子hook手段,将getStringOrNull()和optString()这个方法输入和输出的字符串都搞出来。我这里借助Xposed简单写了个利用框架,其实完全可以自己写个独立的木马式APP,ROOT是重点,代码大致为:

13.jpg


这样效果就出来了:

14.jpg


15.jpg


上面两张或许无伤大雅,再来下面两张是不是有点小慌了..

16.jpg


17.jpg


3.下面说说怎么去利用,顺延上次的伪造升级(想起来我的1rank 呜呜..)

18.jpg


将upgrate设置为302,强制升级了:

19.jpg


这样在客户端内任意点链接都会跳转到伪造的apk恶意下载地址:

20.jpg


Over..

修复方案:

不要把所有的关键字符串的获取都压在一个方法里啊,这样ROOT情况下碰到钩子得多危险;
我曾经遇到过一个大型银行的客户端将用户输入的所有字符串都经过一个方法,然而貌似现在修复了 哈哈,不然也来提交了!! 额 不会还是1rank吧 京东哥哥..

版权声明:转载请注明来源 骑虎打狗@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:2

确认时间:2015-09-13 10:31

厂商回复:

APP这块我们正在统一做加固,非常感谢您对京东安全的关注!

最新状态:

暂无