一、修改支付价格
修改支付价格是支付漏洞常见的挖掘思路,在支付流程中,可以修改支付价格的步骤有很多,包括订购、确认信息、付款等等。在所有设计到价格的步骤中都可以尝试修改,如果网站在某一环节存在逻辑上的漏洞,就可以利用该漏洞对支付价格进行修改。
二、修改支付状态
有时,一个订单的支付状态是由用户提交的某个数据包的某个参数决定的。如果存在这种情况,我们就可以对比已经支付的数据包订单和未支付的数据包订单之间的差距。尝试找到这个标志支付状态的参数(如果存在的话),然后修改该参数,如果网站后台没有对该参数进行检验,那么就可能测试成功。
三、修改购买数量
在有的支付网站,支付金额是由购买数量*商品单价决定的,如果我们在数据包中修改购买数量,将其修改为负数或者小数,那么如果站点后台对此没有进行过滤,就有可能存在支付漏洞。
四、修改支付优惠相关数据
此外,很多大中型的支付站点,都推出了优惠券、积分返现、抽奖、试用期、打折等等的优惠功能。由于很多业务都是临时推出的,因此在开发逻辑上就有可能比之前上线很长时间的功能存在漏洞的可能性大很多,我们在进行渗透测试的时候,也可以着重测试这方面的逻辑问题。例如很多网站对之前的数据校验非常成功,但是对优惠券优惠的金额、积分返现优惠金额等没有进行检查,导致用户可以对这些信息进行修改,就造成了支付逻辑漏洞。再比如一些存在适用期限虚拟产品,如果适用期限存在漏洞,我们就可以修改适用期限的参数,导致我们可以无限期适用该茶品。
五、修改订单值
在支付前,站点通常都会产生订单号,订单号可以帮助站点标志不同的订单,如果我们可以修改订单号,就可以支付一个金额较少的订单,然后将订单号修改为金额较大的订单,从而达到少付多买的目的。
六、重复支付
重复支付主要是针对一些限购的商品,比如一个用户只能购买一个或者两个。这类商品通常是性价比非常高的商品,如果我们在购买时,对购买的数据包进行重放,如果站点内部验证逻辑不严密的话,就有可能造成重复支付的漏洞。