记录一次觉得有意思的某src支付漏洞
随意挑选进行商品进行购买
首先;我们梳理一下思路
在这一步可操作的点
如优惠卷添加金额,因为很多平台修改金额比原金额低会进行校验;会忽略掉这一点
如月佬所说金额溢出操作 int数字类型最大值为2147483647 、运费替换商品金额、或者支付金额替换等操作,将所有的操作思路全部试了一遍;结果发现都有校验,无法进行下一步操作,全部会让返回进行重新提交订单;那么这个时候我们发现所有的地方都进行校验。
这时候我们返回到商场外部
我们首先提交一个比较正常的订单
现在仍然无法进行支付
我们点击支付查看下数据包信息;
请求信息如下 可查看是根据订单id直接将金额返回到页面信息 无法更改金额信息
拦截返回包查看返回包信息
我们在bp中搜索的0.61是我们之前测试余额时充值的金额;
14.80为支付金额;这个请求的返回包将金额以及我们的余额都传递了过来;
大胆猜测一波;如果我们将这个返回包的支付金额修改为0元或提高我们余额金额是否可以达到直接购买的操作;
说干就干;我们先尝试将支付金额修改为负数;然后查看有没有什么变化
修改完毕;放包查看
此时支付方式多了一个选项;余额支付;原本支付只有微信支付;
大概是因为后端将校验交给了前端,如果返回金额可进行购买商品则显示余额支付选项
(只是盲猜)
直接切换支付方式;选择余额支付;本以为此时就成功了,
没想到gg,弹出微信支付让进行支付;
再次拉出我们的bp抓包查看数据
可以看到;我们选择的支付方式为余额支付;但此时请求包显示信息;仍然为paymethod=1
意思为支付方式 1=微信支付 2=余额支付
将参数修改为2;然后进行放包
支付成功
最后证明支付成功后为有效支付;
商家在发货时查看地址为test向我打电话确认;
之后提交时发现资产打偏了。
人生不如意,十洞五偏四忽略,一个低危笑嘻嘻
原文始发于微信公众号(钟毓安全):某src支付逻辑有误导致任意支付
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论