Web漏洞之支付漏洞


(部分搜寻的资料用于自学,如有侵犯,联系可删! ———— by 611)

逻辑漏洞之支付漏洞

部分资料转载自:https://www.secpulse.com/archives/67080.html

一、商品的购买流程

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

二、常见的篡改参数

当我们提交订单时,抓取数据包可能会发现提交的许多参数都是可以修改的,如果后端处理不当,修改完就可能对结果产生影响;常见的篡改参数有:商品编号ID、购买价格、购买数量、支付方式、订单号、支付状态等。

三、常见的修改方法

我们以DamiCMS作为靶场示例,以1件5400元的大米CMS为例,点击立即购买,抓取数据包,进行参数的分析:

image-20230305140218383

image-20230305140341454

根据数据包进行分析,传入的部分参数含义应该如下:

m——>会员 a——>立即购买

iscart——>加购 id——>商品编号

name——>商品名字 qty——>购买数量

price——>单价

1、修改支付价格

在支付过程中,购买分为订购、确认信息、付款几个步骤,每一步都应该进行检验,如果缺了某步的验证机制,我们就会有机可乘,将价格改成小金额或者负数。

  • 我们尝试将价格改少,发现价格成功被改变。(也可以尝试改成负数)

image-20230305141105459

image-20230305141148903

2、修改支付状态

​ 该问题是没有对支付状态的值跟实际订单支付状态进行校验,导致点击支付时抓包,修改决定支付或未支付的参数为支付状态的值从而达到支付成功。

3、修改购买数量

在支付过程中,数量也决定价格,当我们把数量值改成负数的时候,那么金额一会变为负数(有的会变成0),这样就导致了支付问题的产生。

  • 数量变为负数时,价格也变为负数。

  • 当数量变为负数时,价格变为0。

image-20230305142924427

4、修改支付接口

​ 网站一般会有很多个支付接口,支持很多种支付,比如:支付宝支付、微信支付、网银支付。如果验证不当,随意点击一个进行支付时,我们进行抓包,将支付接口改成一个并不在选项内的支付接口,比如我们自己写的支付接口,那么所支付的钱就会付给那个修改后的支付接口。

5、替换支付

​ 下单时对于每个订单都会产生一个随机的订单编号,假如我们同时下了两个单子(分别是金额较大的和金额较小的),就可以获得两个订单编号,而当我们捕获这两个数据包后,将金额较大的订单编号替换成那个金额较小的订单编号,如果验证不足,那么就可以以较少的金额购买较高额的产品。

image-20230305145746412

6、修改附属值

image-20230305150048875

7、重复支付

image-20230305150212402

8、最小额支付

image-20230305150239092

9、值为最大值支付问题

image-20230305150451931

10、越权支付

image-20230305150459244

11、无限制试用

image-20230305150508676

12、修改优惠价

image-20230305150517528

posted @ 2023-03-06 12:11  6小1  阅读(280)  评论(0编辑  收藏  举报