商品支付,支付逻辑漏洞安全(niushop)——实例讲解一毛钱购买手机

一、什么是支付逻辑安全

支付逻辑漏洞是指系统的支付流程中存在业务逻辑层面的漏洞

二、常见支付流程:

选择商品和数量——选择支付及配送方式——生成订单编号——订单支付选择——完成支付

如:最常见的支付逻辑漏洞通常是由于服务器端没有对客户端请求数据中的金额、数量等敏感信息进行效验导致。一般漏洞产生在电子商务类应用中。

三、支付逻辑漏洞一般分为四类:

1.支付过程中可以修改支付金额
2.可以将订单中的商品数量修改为负值
3.请求重放导致
4.其他问题(程序异常,其他参数修改导致问题等)
其他支付问题补充:
修改支付状态、修改附属值(优惠券积分等)、修改支付接口、替换多个订单、重复支付等。
参考:https://www.secpulse.com/archives/67080.html

四、测试方法与修复方法

支付逻辑漏洞之修改订单数量:
1、登录网站,选择购买一个商品并抓取数据包
2、找到其中代表商品数量的参数,将参数的值修改为负数
3、发送数据包,生成订单,观察订单是否有效,是否能进入支付页面
4、完成支付

修复方法:
1、在请求数据中对对涉及金额、数量等敏感信息进行加密,保证加密算法不可猜解。并在服务器端对其进行校验。
2、支付交易请求数据中加入tbken,防止重放攻击。

五、案例一——niushop商城CMS支付逻辑漏洞(1元钱购买商品)

在我的资源中下载: niushop存有支付逻辑漏洞版本源码,下载后使用phpstudy搭建,搭建完成如下图所示,注册一个账号 ceshi/123456
在这里插入图片描述
用户名注册完成后,去购买商品
在这里插入图片描述
选中商品进行购买,选择数量为2并且使用burpsuite拦截数据包,将num=2修改为num=-2
在这里插入图片描述
在这里插入图片描述
放出数据包之后,下一个数据包的num=2,也修改为num=-2
在这里插入图片描述
之后使所有的数据包都通过,可以发现商品订单已生成,已付款金额为0。虽然不能实现0元购买商品,但是会给商家带来很大的骚扰。
在这里插入图片描述
通过以上的测试,我们发现可以通过控制num参数,修改商品的金额,那么将num修改为0.01,订单金额就等于0.01X100=1元,有了想法之后进行测试,发现确实可以实施。
在这里插入图片描述
在这里插入图片描述

六、案例二——damiCMS支付逻辑漏洞(1毛钱购买手机)

在我的资源中下载: damiCMS含有支付逻辑漏洞版本的源码,下载后使用phpstudy搭建,搭建完成如下图所示
在这里插入图片描述
在商品售卖中,有个商品大米测试产品价格6000,网站存有支付逻辑漏洞,可用使用1毛钱购买6000的大米测试产品
在这里插入图片描述
点击购买并使用burpsuite拦截数据包,将price=6000修改为price=0.01
在这里插入图片描述
之后订单价格被修改为0.01,一毛钱买6000的手机
在这里插入图片描述
更多web安全工具收集整理在知识星球。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40412037/article/details/111606918