酒店门缝小卡片与微信小程序安全测试全攻略

2024-12-25
来源:网络整理

前言

当你入住某家酒店时,它看上去就像一家“普通”酒店。刚刷卡进去,就看到门缝里有一张小卡片。床头还贴着一张。我个人微信上的一个二维码被美其名曰SPA。还贴心提供自助售货机购买TT。出于好奇,我扫描了代码。这是一个微信小程序。看界面,我觉得可以测试一下。我发现里面的东西销量确实不错。

正好等外卖,就拿出测试机,打开神器BURP。开始测试。

测试环境

小程序抓包时,请注意系统版本。 7.0之后,默认不信任用户安装的系统证书。因此,在手机上安装burp证书时,需要将该证书安装为系统信任的证书。方法如下

手机需要先ROOT

证书格式转换

# 1. 证书转换,已经是pem格式的证书不需要执行这一步openssl x509 -inform DER -in cacert.cer -out cacert.pem  # 2. 进行MD5的hash显示# openssl版本在1.0以上的版本的执行这一句openssl x509 -inform PEM -subject_hash_old -in cacert.pem# openssl版本在1.0以下的版本的执行这一句openssl x509 -inform PEM -subject_hash -in cacert.pem

证书重命名,数字是上面计算的hash

mv cacert.pem 347bacb5.0

将新证书放入系统目录

/system/etc/security/cacerts chmod 644 /system/etc/security/cacerts/.0 chgrp root .0

过程

只需捕获包即可查看进程中的包。当你点击该物品时,会发送一个包裹来获取物品信息。依然可以遍历post中的id参数,获取每个房间的物品信息。

看到这个ID可以被遍历,感觉还有机会。看上图,可以发现包中不存在,只有一个,所有包都不会改变。

尝试修改返回包中的所有相关字段,看看是否可以修改付款价格。前端显示的价格确实发生了变化,但付款时,还是按原价支付。

回顾整个采购流程,采购可以分为两个操作。一是点击商品进入商品详情页面,可以看到该商品的售价等信息。然后点击支付按钮,进入支付操作。目前只测试了点击物品后的数据包。测试后,价格无法修改。

接下来,启用burp的数据包拦截,阻止点击支付按钮时发送的数据包。发现POST中有一个参数默认为0,这个词的意思是折扣。

哦,那是不是说我只要改变这个参数就可以得到购买折扣呢?先试试,把0改成1,付款时成功减1。

我尝试用这个方法买了个TT,看看能不能打开柜门。付完十毛钱后,“砰”的一声,柜门打开,一辆TT出现在我面前。惊喜Σ(っ°Д°;)っ。

作为一个新时代的好青年,(主要是我不需要,哭/(ㄒoㄒ)/),我把TT放回格子里,默默地关上了门。

总结

对于逻辑漏洞的挖掘,关键是要注意过程中各个包的各个参数的含义和作用。上述支付逻辑漏洞比较简单,参数均以英文单词命名,更容易猜测参数的具体功能。有些开发的参数设置很奇怪,都是拼音首字母开头的。这时,往往很难猜测参数的实际含义。它需要不断的修改和测试,看看修改参数会产生什么影响。

分享