演示案例:
➢ WEB攻防-购买支付-修改数量&篡改价格&订单对冲
➢ WEB攻防-购买支付-优惠券规律&积分对冲&库存溢出
一、支付逻辑常见测试:
1、熟悉常见支付流程
选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付
2、熟悉那些数据篡改
商品ID,购买价格,购买数量,订单属性,折扣属性,支付方式,支付状态等
3、熟悉那些修改方式
替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付等
4、熟悉那些另类方法
无限试用,越权支付,并发兑换,四舍五入半价购,循环优惠券,支付签约逻辑等
5、羊毛省钱促销机制
新老用户差异,积分兑换制度,邀请分享绕过机制,红包渠道等
小迪演示内容:
1、购买商品数据包中改商品价格和数量
2、购买b产品的价格比a产品高,抓到a产品的数据包,把a产品关联的属性改为b产品的,购买的东西变成b产品,价格却还是a产品,但是数据包中有a产品的价格属性,其实直接买b产品改价格也行。
3、购买商品可以使用优惠卷,数据包中含有优惠卷使用参数,当没有优惠卷的时候把参数改成非零即可在没有优惠卷的情况下使用优惠券。积分也是这个情况,你要怎么改需要对比使用前后两个包的差异。
4、改库存参数,比如库存为1,你买10件。
这里的内容我感觉都是很难实现的,感觉有点老。
接下来是讲真实案例:
1、有时候充值存在四舍五入,比如软件充值0.019支付宝支付后,到账0.02,不断的充那发财了。
2、有的网站签到领积分,我们可以改设备时间,然后去补签
3、连续包月存在支付漏洞,连续包月价格为9块一个月,正常是25一个月,我连续生产4个订单,但是先不支付,支付一个然后立马解约然后四个订单都这个操作,发现36买了4个月。
#支付逻辑如何挖掘:
1、找到关键的数据包
可能一个支付操作有三四个数据包,我们要对数据包进行挑选。
2、分析数据包
支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠等)
要尝试对数据包中的各个参数进行分析。
3、不按套路出牌
多去想想开发者没有想到的地方,如算法拼接,关闭开启返优惠券等
4、PC端尝试过,APP端也看看,小程序也试试
#支付逻辑安全修复:
1、在后端检查订单的每一个值,包括支付状态;
2、校验价格、数量参数,比如产品数量只能为整数,并限制最大购买数量 ;
3、与第三方支付平台检查,实际支付的金额是否与订单金额一致;
4、如给用户退款,要使用原路、原订单退回。如:退押金,按用户原支付订单原路退回;
5、加密、解密、数字签名及验证,这个可以有效避免数据修改,重放攻击中的各种问题;
6、金额超过指定值,进行人工审核等。