api.*****.login通过传输用户名和加密的密码和短信验证码结合才可登录,该接口可以重放,通过分析业务安全防护逻辑可发现虽然云端有IP登录次数限制,但在次数限制内更换代理IP可以持续爆破用户名和密码。
POST /api/*****/getit HTTP/1.1
Host: api.*****.com
api.*****.getit仍可以重放,客户端退出账户,云端未将客户端sessionid做过期处理,导致云端还可以接受该sessionid并且返回相应的返回值。
类似这样的接口还很多在此不一一列举。
客户端与服务端的通信安全:
客户端逆向分析通信的系统和认证方式:
身份认证
移动客户端访问云端系统使用不同的认证方式,有 token 和 session 校验这两种。在IoT架构设计层面,云端为了验证每次移动客户端的请求都要求附带token,而每次移动客户端向云端请求token将增加云端服务的压力,故该联合网关报警产品允许单次批量获取token存储本地供请求时调用。默认每次申请10个token,将count值改为100甚至更多仍可获取相应数量的token。
交互安全
如果你接触过IoT设备,你会知道联合报警网关可搭配:烟雾探测器、水浸传感器、红外探测器等使用。实际上传感器与网关设备的绑定、解绑也存在安全问题。
射频信号重放
遥控、传感器与网关通信的频率为868MHZ,如下图所示:
抓取到的报警信号如下图所示:
休眠模式波形如下:
静默模式:
使用HackRF抓取传感器向联合报警网关发送的告警信号并重放,发现联合报警网关没有防重放机制,将抓取到的信号重放警报声马上响起。