漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-099933
漏洞标题:小米手机的短信找回功能存在重放攻击风险
相关厂商:小米科技
漏洞作者: Mr.Anderson
提交时间:2015-03-08 10:28
修复时间:2015-06-07 20:20
公开时间:2015-06-07 20:20
漏洞类型:设计错误/逻辑缺陷
危害等级:中
自评Rank:5
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-03-08: 细节已通知厂商并且等待厂商处理中
2015-03-09: 厂商已经确认,细节仅向厂商公开
2015-03-12: 细节向第三方安全合作伙伴开放
2015-05-03: 细节向核心白帽子及相关领域专家公开
2015-05-13: 细节向普通白帽子公开
2015-05-23: 细节向实习白帽子公开
2015-06-07: 细节向公众公开
简要描述:
安全不是粗枝大叶,也不是危言耸听。该漏洞利用条件及其有限,但是如果真的利用成功,风险也是存在的。
详细说明:
综述:
访问小米的手机找回官网http://i.xiaomi.com 可以发起手机找回功能的请求。
该功能和手机配合的时候,默认是通过网络信道(如WiFi,3G,4G等)进行请求/响应。但是,如果将网络信道关闭,则只能通过小米科技的短信网关进行手机找回功能的操作。我发现小米没有对短信的请求命令来源做检查,于是有了如下报告。
攻击方式:
将网络信道完全关闭,如数据通道、WiFi关闭。
1、假设小米手机的账号是18512345678,使用该手机账户登陆http://i.xiaomi.com,关闭原来的小米手机的数据通信和WiFi,并插上另外一张电话卡,假设是13343214321.
2、把18512345678的电话卡插在任一一台非小米科技的手机上,然后在http://i.xiaomi.com上发起手机响铃告警的请求。如果没什么意外,18512345678会收到如下格式的短信:
mfc,n,358912345,1425631167071,E132AA0##【小米】
该格式分析如下:
mfc:控制代码
n:该处为指令集,n (noise) 表示要响铃,其他有指令,如:l(location),e(erase),
358912345:消息的序列号,用来对短信重传进行限制
1425631167071:时间戳
E132AA0:这个应该是服务器生成的Token,用来验证是否由服务器发送。
3、现在把这个短信发给插在小米手机上的13343214321,没错,短信执行了。同时,你的18512345678这台非小米手机还会收到13343214321的返回信息,比如当前运营商啊之类,如果你发的是手机位置的请求,没错,你的手机还会收到当前手机的经度纬度。
====================
感觉小米应该是对这个短信来源有判断,短信网关xml文件如下:
但是不知道为什么小米的cloudservice没有做详细检查。
攻击场景:
这个攻击场景很有限,具体方式不表。
漏洞证明:
修复方案:
版权声明:转载请注明来源 Mr.Anderson@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2015-03-09 20:19
厂商回复:
感谢白帽子提交漏洞。首先,该问题应该不算是重放攻击漏洞,我们的客户端对重放攻击是有防范的,是有时间的校验的。严格来说,此问题应该算是某种极端场景下的中间人劫持。因为某些原因,我们的找回流程没有达到极致的严谨,这方面我们会尽快修复的更好。
正如洞主自己所描述,这种劫持对时机和权限的要求极高,如果攻击者这能有这样的场景,即使不利用此漏洞,也可以对用户造成很大的伤害。
攻击者需要如下场景才可以利用此漏洞(比如获得机主的位置信息):
1. 攻击者有目标手机的小米账户的用户名密码
2. 攻击者要能随意折腾使用目标用户的手机(比如偷走用户的sim卡或者插入自己的sim卡而不被发现)
3. 并且在动完手脚后,目标手机永远不再联网
综上所述,我们认为此漏洞对真实场景中的用户的影响是极其有限,属于低危漏洞,但很有技术含量,赞一下洞主的细心。
最新状态:
暂无