记一次智能印章设备的漏洞挖掘
Last updated
Last updated
东西比较简单就是在APP上提交审批,通过后便可通过APP控制盖章设备自动进行盖章
很显然拿到设备要先分析哪些点是可能的突破口,对于APP而言一般会分为两大方向一个是APP本身,一个是Web端。本文将以APP和设备本身作为重点关注方向,不深入探讨Web端存在的问题。
设备的功能比较简单粗暴,就是接收指令然后盖章,指令通过蓝牙传输。也就是说唯一的交互来自于蓝牙,因此将重点关注方向转至APP的蓝牙部门。
既然已经确定重点分析方向,那就很简单了,找到对应的APP对其进行逆向即可。发现有壳,直接掏出实验室的大宝贝。
脱完壳后通过搜索关键字快速定位到蓝牙的部分
通过日志信息很快就找到了对应的方法,这里明显可以看到对数据进行了一定的加密
进一步跟进构造数据的函数,可以发现以下代码。
那么现在的问题就比较简单了,一个是构造出数据的完整格式,一个是得到加密的密钥。这里选择了较为简单粗暴的方法,使用frida直接hook。
到目前为止,我们已经可以成功构造出对应的数据了。但是怎么把这些蓝牙数据发送出去呢?这里因为采用了GATT协议,笔者选择了使用gatttool来进行演示。可以直接通过characteristics指令来找到有读写特性的uuid以及对应的handle。这里需要注意的是从蓝牙串口读取数据并不是直接去读取这个handle,而是通过notify获取数据,只需把特性值handle加1即可(这里写文章的时候设备以送还,因此缺少对应图片)最终部分脚本如下