Skip to content

Latest commit

 

History

History
112 lines (64 loc) · 5.59 KB

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

File metadata and controls

112 lines (64 loc) · 5.59 KB

> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [mp.weixin.qq.com](https://mp.weixin.qq.com/s/M1HrONpD9oqB\_NhSvmZFUw)

亲爱的, 关注我吧

11/10

文章共计 1220 个词

预计阅读 5 分钟

来和我一起阅读吧

作者:7ten7

转自先知社区:https://xz.aliyun.com/t/8369

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

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

**
前言**

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

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

**测试环境
**

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

手机需要先进行 ROOT

  1. 证书格式转换
\# 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

1)证书重命名,数字为上面计算出的 hash

mv cacert.pem 347bacb5.0

2)将新证书放到系统目录下

/system/etc/security/cacerts
chmod 644 /system/etc/security/cacerts/<hash>.0
chgrp root <hash>.0

**过程
**

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

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

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

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

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

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

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

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

**总结
**

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

福利时间:如果你想学习以下知识,请点击阅读原文 2 分钱报名吧,报名完可私信小姐姐报销哟!

戳 “阅读原文”,2 分钱报名学习!