所有资料仅供学习参考,禁止违法行为,否则自行承担后果。
支付逻辑漏洞: 是指在支付系统中存在的一些安全漏洞,如转账、付款、提现、充值、兑换等之类的功能处发生的漏洞就统称为支付漏洞。
在支付的时候我们一般会获取两个数据包: 1、选择产品 2、确认订单,无论是选品还是确定订单都会产生对应的数据包,数据包中就携带相关的数据,对其中的数据就行修改即可完成测试
< 一 >订单金额任意修改(测试金额不能太大)
漏洞原理:
在选品阶段存在订单金额任意修改,可以变成原本100元的商品,可以使用1元甚至其他的价格可以购买。
1、选择自己的产品,然后抓取数据包
2、修改数据包中的金额实现订单金额任意修改
3、放行数据包,观察页面变化
有些数据会放在返回包当中:
返回包里搜索price将价格更改为0,(多个返回包更改才可能成功)
< 二 > 负数购买漏洞
漏洞原理:
在选品阶段将订单的数量改成负数,造成订单为负数购买,或者给你反向到账的情况。
( 单价*个数=总价)
1、选择自己的产品,然后抓取数据包
2、修改数据包中的产品数量为负数
点击“立即购买”会产生多个数据包,依次更改。
3、放行数据包,观察页面变化
< 三 > 四舍五入漏洞
漏洞原理:
支付漏洞中的四舍五入漏洞是指支付系统在处理金额精度时,由于四舍五入规则运用不当而产生的逻辑缺陷,攻击者可利用该缺陷进行欺诈行为,获取不当利益。
在支付系统中,金额通常精确到分。当系统对金额进行四舍五入处理时,如果前端显示的金额和实际支付扣除的金额不一致,就可能出现漏洞。例如,用户尝试充值0.019元,系统界面显示为0.01元,末位的9被自动截断,但实际支付时却扣除了0.02元。攻击者可以利用这种差异,通过精心构造充值金额,如多次充值接近分位但被进位的金额,积累差额,最终获取额外收益。
1、打开充值页面,充值(0.019)
2、0.01后面的9直接忽略了,因为第三方支付只能判断到分
3、支付完成之后,网站四舍五入0.019=0.02
< 四 > 整数溢出漏洞
漏洞原理:int的范围是-2147483648~2147483647。你可以把它看作是一个循环,当超过最大值后就重新从0开始计算 。
比如2147483649=-2147483646。有时候支付里面没有负数所以从0开始计算了
当支付金额为2147483650时,支付金额就变成了3。
1、选择自己的产品,然后抓取数据包
2、修改金额为2,147,483,649
3、放行数据包,观察页面变化
< 五 > 修改优惠券漏洞
漏洞原理 :关于优惠券可能也有很多漏洞比如:
1 同一优惠券可无限次使用
2 不验证最低消费金额条件
3 使用他人的优惠券
点击网站里的优惠券,抓包----找里面的优惠券的参数,比如:coupon couid
1、登录购物网站,选择产品,随后立即购买,抓取数据包
2、分析购买的数据包
3、可以看到有一个生成订单的数据包,会产生多个数据包
4、放行数据包,发现还有一个订单生成的数据包
5、分析传递的参数,然后URL解码
6、重放该数据包,修改id值
7、爆破ID值,遍历看看有没有其他的
8、找一个可以用的优惠券
9、放行数据包
< 六 > 修改运费漏洞
漏洞原理: 修改运费和修改金额是一样的
1、在生成订单的页面,我们修改运费的价格,运费就是0元
2、修改返回包中的运费数据
3、放行数据包,发现运费被修改
总结:1、找接口,
2、分析数据包
3、修改参数