酒店蓝牙售货机0元购

酒店蓝牙售货机0元购

机型1

image-20230924160355415

正常购买流程:

  1. 扫描设备上的二维码进入小程序
  2. 授权蓝牙连接,连接成功后可以选购商品
  3. 支付订单
  4. 服务器返回一段数据
  5. 手机将数据传送给设备,设备校验成功后即可打开货舱

尝试直接修改订单支付的结果,虽然小程序显示“开柜中…”,但一直无法打开,应该就是缺少步骤4的关键数据。

后来在分析小程序代码时发现一个API:/VendingSystem/front/smallWxpay/getPaySafeCode ,结合相关代码,发现使用这个接口的数据也能打开货柜。

这个接口并没有对订单支付状态进行校验,只要能创建一个订单,就可以调用这个接口获得其中的result数据。

image-20230924155308197

有了result数据如何打开货柜?修改原始小程序的逻辑比较困难,于是尝试写个小程序调用BLE通讯的API,网上有类似功能的开源项目,下载一套代码修改一下即可实现。

image-20230924161554550

image-20230924161649992

视频:

https://static-1256168285.cos.ap-chengdu.myqcloud.com/IMG_0368.MOV

图片:

image-20230924164826539

机型2

image-20230924165139829

这个机型的结构比较简单,也比较容易破解。直接修改HTTP报文中的数据即可破解。

resultCode由原来的202改成200后,小程序就认为支付成功,进入了开柜的流程。

image-20230924164909938

image-20230924164921706

开柜图:

image-20230924165051159