京东商城Android客户端之用户隐私风险&伪造
漏洞:京东商城Android客户端之Update伪造漏洞(详细测试过程) 已经显示京东服务器返回的数据为JSON格式,所以在客户端捕捉关键信息的时候一定是关键字罗列,如下图所示:
发现他们都是通过一个方法获取的:com.jingdong.common.utils.JSONObjectProxy的getStringOrNull();
这样就有利用的源头了 啧啧~~
漏洞证明:1.输出对应字符串的确认。通过二次打包客户端,插入暗桩:
输出如下:
可见,升级提示符是经过getStringOrNull()方法的。通过查找登录用户的各种隐私资料是经过optString()方法的:
2.在ROOT的手机上写个外部程序,通过钩子hook手段,将getStringOrNull()和optString()这个方法输入和输出的字符串都搞出来。我这里借助Xposed简单写了个利用框架,其实完全可以自己写个独立的木马式APP,ROOT是重点,代码大致为:
这样效果就出来了:
上面两张或许无伤大雅,再来下面两张是不是有点小慌了..
3.下面说说怎么去利用,顺延上次的伪造升级(想起来我的1rank 呜呜..)
将upgrate设置为302,强制升级了:
这样在客户端内任意点链接都会跳转到伪造的apk恶意下载地址:
修复方案:
不要把所有的关键字符串的获取都压在一个方法里啊,这样ROOT情况下碰到钩子得多危险;