记一次闲鱼踩坑踩出来的小米账号锁漏洞
提前叠甲:
1.本分享纯属技术探讨,目的是促进厂商改进和用户警惕。请绝对不要用于非法途径!
2.我早在发现时就尝试通过官方渠道反馈了,但石沉大海。思索再三,决定写成文章。
3.我不是专业人员,分析如有纰漏,欢迎大佬们指正交流!
正片:
这个漏洞是我在偶然间发现的,我在闲鱼上买了一台解好bl的红米note10pro,结果砖了一次之后才看到下面的不可升级。

于是我一个机小白就开始琢磨怎么解开,一开始我接触到,社区里有解锁包这种东西,原理是修改刷机包里面的组件重新打包,这个组件我们后面会提到,我尝试刷了一下,效果很好,但是呢,都解开了bl锁,停留在特定版本肯定是没意思的,于是我开始找更加通用的办法。
一开始,我去找社区里做解锁包的大佬,想付费求包,但是都不做,我只能自己琢磨了,我尝试了高版本的移植系统,果然,会弹出账号锁,然后我重新刷干净,注意到,不联网的情况下,只要环境够干净,他就不会弹出来,于是我利用这个特性不断尝试,我尝试用屏蔽域名的方式来绕过,但是很明显是不行的。
转折出现在我解包了社区里的解锁包之后,发现了核心组件是com.xiaomi.finddevice,查找设备,然后我利用反编译工具尝试定位修改点,但是我不知道哪些是关于锁机的代码和组件,随后我想到,它肯定在apk的AndroidManifest.xml有记录,于是我把这些配置丢给ai,果然定位到了修改点,代码也确实有差异,我看了一下,主要是将关键的传递环节修改,替换为了空逻辑,然后我尝试一模一样的照搬修改,结果发现,我貌似不会打包,于是我就在想,居然没有修改逻辑,只是阻断,是不是可以直接卸载?然后我来了一遍,果然,和各种系统组件一样,都是可以卸载的,卸载之后也没有再弹出来过,也没有任何的效验逻辑。
后面我仔细琢磨了一下,这个组件是有两个判断逻辑的,一个是判断本地的数据,如果本地分区保留了账号锁标识,就直接弹出锁机界面,并且锁机时会关闭usb调试,很明显工程师应该是提防过usb的,另一个逻辑就是,本地数据不存在,就联网获取,此时如果未联网,就不执行任何操作,等待OOBE流程结束,用户自行联网再获取,换句话说,不联网一直不弹,因为它也没依据(工程师可能想着你总不可能不联网用手机,看来对自己可脱离OOBE的锁机很自信),但是这就被抓住了把柄,于是就有了这个漏洞。
总结一下,这个漏洞存在的原因就是因为权限配置错误还有考虑不周,本身根据本地和服务器获取没有什么问题,这个漏洞存在于任何机型和目前已测试的MIUI12.5-澎湃3.0,有趣的是,在不同机型,不同版本的差异表现在能否登陆小米账号,不确定是不是因为代码差异所导致。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)