0x00前言
本来想对智能锁多层面安全的文章,例如物理、固件、蓝牙协议、生物特征安全发布一个综合性文章,但在分析该APP的过程中发现问题较多,所以单独发布了出来,本文技术含量较低,但是其中存在的问题程度,对一个锁来说,还是挺严重的,毕竟锁的目的是保护财产和人身安全,本文仅从用户角度层面出发来发现存在的安全隐患,并没有遵循APP checklist进行漏洞测试,且文中测试所涉及的账户均为自行申请的测试用户。
不好意思,我是标题党。
随着物联网技术的不断发展,越来越多的智能设备出现在我们生活中,作为智能家居行业中的热门产品,智能门锁也随之走俏,一时间入局者众多。
《2019-2023年中国智能门锁行业深度调研及投资前景预测报告》相关数据显示,预测到2020年全球智能门锁产业规模将达到突破3500万套,随着智能设备不断的发展,智能锁在锁具市场上占据份额会越来越大,甚至超越传统锁。
而随着智能锁的不断发展,随之衍生的开锁的方式较多,常见的有手机APP/小程序开锁、指纹开锁、密码开锁、人脸识别、指静脉、IC卡开锁、声纹开锁等等方式,而多维度的开锁方式使得智能锁所暴露出的攻击点更多。
常见的智能锁可能存在的攻击面有:物理层、电路层、固件层、移动APP层、生物识别层、无线电、云端通信等层面,各攻击面详细介绍在后续智能门锁研究的文章中一一体现(主要是在这写的太详细了,后面文章就不好写了)。
0x01设备APP概述
避免涉及到隐私问题,所有涉及到厂商的位置均打码,智能指纹蓝牙锁的图片我找了一张网图,如下图所示。
该智能锁APP功能不算复杂,大体功能点如下图所示:
0x02 漏洞发现
根据上面的导图,我们对其功能点进行测试
首先从用户界面的注册功能来入手:
注册功能模块
1、验证码逻辑漏洞:
(1)按照正常注册逻辑,输入邮箱,获取验证码查看邮箱,可以看到验证码的构成为4位数。
(2)输入验证码后点击注册,查看正常返回包,发现返回包内容就是如此的朴实无华。
(3)我们返回到注册页面,输入邮箱,获取验证码随机输入一个错误的验证码,点击注册功能。
(4)查看返回包数据,直接将status 2001修改为2000
(5)提示注册成功。
2、验证码复用:
(1)此处还存在一个验证码爆破可复用的情况,一样可以绕过验证码限制,成功注册。
3、通过用户枚举+密码重置:
(1)登陆和注册可以枚举用户并密码爆破成功。
(1)密码重置模块的逻辑和注册逻辑是一致的,不再多说了,此处用户名枚举
(2)提交请求
(3)绕过验证码
-w819
(4)爆破验证码
绑定设备模块
登录后发现需要绑定蓝牙指纹锁设备,(蓝牙、编号、二维码)
(1)使用蓝牙添加是根据设备mac地址
(2)我们使用二维码/编号添加设备,该编号是识别设备的唯一标识
(3)如果该锁已被绑定,则提示需要向绑定人获得授权。
短信重放
(5)授权需要发送短信给设备绑定人,而发送短信接口存在短信重放
越权绑定
(6)我们回到需要授权的上一步,直接使用burp直接用编号来添加设备,而该编号是可以直接遍历设备信息的,
返回设备信息有用户手机号、设备编号、设备锁的密码、设备的mac地址
用户账号信息泄露
(1)绑定设备前的数据包可以通过明文id值遍历用户信息-比如用户的登录名、md5密码、用户性别等等..大家都是成年人了,说话直接点,我要这锁有何用?
用户好友信息泄露
获取好友列表里好友各种维度的信息,例如微信头像、用户手机号、用户名称、用户id等等,此处我遍历的自己账号,因为没有添加好友,所以不截图了。
开锁记录功能
用户经纬度泄露
获取开锁记录可以通过明文ID值进行遍历每一个用户,获取到每一次对应的开锁详细经纬度位置和手机号。
通过遍历到的用户经纬度信息配合泄露的用户名密码…
0x03小结
从用户角度来看,能够泄露的信息有:
智能锁管理APP的登陆账户、Md5密码、用户名、手机号、好友列表、用户性别
从设备的角度来看,泄露的信息有:
设备的用户名、智能锁设备的密码、设备名称、设备编号、设备的mac地址、智能锁设备所在位置的经纬度。
本次所分析的蓝牙指纹锁APP厂商,如果仅通过用户的UID来判断用户量则已经达到十几万+,且同时还拥有智能车锁、智能门锁、智能柜锁等不同系列的锁,根据官网介绍来看,一定概率是同一款APP来进行控制管理。
整体的安全性不仅由木桶最短的木板决定,更取决于木桶底部是否完好,如果底部存在漏洞,木板再高也是没有意义的,都是空谈,随着智能锁不断推出陈新,更多的新技术会运用到锁具中,与此同时面临的风险更多….
来源:freebuf.com 2020-08-27 15:00:09 by: TideSec
请登录后发表评论
注册