安全矩阵

 找回密码
 立即注册
搜索
查看: 4587|回复: 0

对酒店房间自助售货机的支付漏洞挖掘

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-11-10 21:21:08 | 显示全部楼层 |阅读模式
原文链接:对酒店房间自助售货机的支付漏洞挖掘

作者:7ten7
转自先知社区:https://xz.aliyun.com/t/8369

本文所涉及的知识点实操练习——支付逻辑漏洞:可通过该实操了解支付逻辑漏洞,掌握常见的支付漏洞原理以及漏洞检测利用和漏洞防护。

实操地址:https://sourl.cn/e2nnrq

前言

住某酒店,一看就是个“正规”酒店。刚刷卡进门,就看到门缝里的小卡片了,床头上还贴这一个,个人微信的一个二维码美其名曰SPA。还贴心的提供了自助售货机购买TT。好奇扫码看了下。是个微信小程序,看界面,感觉可以测试下。发现里面东西的销量真不错哦。

正好在等外卖,掏出测试机,开启神器BURP。开始测试。

测试环境

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

手机需要先进行 ROOT

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

  6. # openssl版本在1.0以下的版本的执行这一句
  7. openssl x509 -inform PEM -subject_hash -in cacert.pem
复制代码
1)证书重命名,数字为上面计算出的hash
  1. mv cacert.pem 347bacb5.0
复制代码
2)将新证书放到系统目录下
  1. /system/etc/security/cacerts
  2. chmod 644 /system/etc/security/cacerts/<hash>.0
  3. chgrp root <hash>.0
复制代码

过程

简单抓包看下过程中的包,点击物品的时候,会发包获取物品信息。post中的id参数还是可以遍历的,可以获取到每个房间里的物品信息。


看到这个ID能遍历,感觉有机会的样子,看上图可以发现包中是不存在 cookie 的,只有一个 token,所有包中的 token 都是不会变化的。

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


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

接下来开启burp的包拦截,拦住点击支付按钮时发出的包,发现POST中存在一个 discount 参数默认为0,这个单词是折扣的意思。


哦吼,那是不是只要改动这个参数就可以获得购买折扣了?尝试下,先将0改为1试试,支付的时候,金额成功减少了 1。

尝试性的用此方法购买一个TT,看看是否可以以此来打开这个柜子的门,当我支付完一毛钱,哐当一声,柜子的门打开了,一个TT出现在我面前。惊Σ(っ °Д °;)っ。


作为新时代好青年,(主要是我也用不到,哭/(ㄒoㄒ)/),将TT放回了格子中,默默关上了门。

总结


对于逻辑漏洞的挖掘,重点是需要关注流程中每一个包每一个参数的含义和作用。上文的支付逻辑漏洞比较简单,参数也都是以英文单词命名,比较容易猜测参数的具体作用。有些开发的参数设置很奇怪,会以拼音首字母开头,这时候往往就比较难猜测参数的实际含义了,需要不断的改包测试,修改一个参数后会影响什么。













回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 10:39 , Processed in 0.014332 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表