记一下第33节课的内容。逻辑漏洞之支付逻辑漏洞
一、逻辑漏洞之支付逻辑漏洞
1.漏洞类型
①负数加减法
还是之前的靶场,我们随便打开一个购买页面,以及其购物车页面如图所示:
我们在购买页面,开启抓包,点击加入购物车:
不难推测,aid是商品id,num是购买个数
我们在网页中将购买数改为-3:
这个就是负数加减法
打开亿速云的官网,购买服务器界面:
开启抓包,点击立即购买:
我们可以看到他这里提交的参数是用数组的形式传递的,通过字段名也不难猜测出其含义。我们可以通过修改其中的字段,将其改为负数,比如说将cpu改成-20,但是真正购买的时候是不可能开一个-20G的服务器的,导致将金额减到很低。当然,不要轻易在真实的网站做尝试。
②运费加减法
有时候,网站开发者会把运费写到数据包里,我们可以直接通过修改数据包中的运费字段,将其改为负数,来实现和负数加减法类似的效果,用非常少的金额买到非常多的东西。(这里的数据包中没有写出运费)
③恶意购买导致商品出售不正常
有的时候,我们下单时只下单不付款可能会导致商品被锁定,导致商品出售不正常
④优惠券漏洞
优惠券漏洞有如下几种情况:一劵多用、重复使用优惠券、多个账户优惠券给一个账户用,还可以通过抓包的方式将低金额优惠券的id更改为高金额优惠券的id。我们通过优惠券演示一下竞争支付漏洞
在靶场中是可以领取优惠券的,在点击领取之后,我们可以趁着服务器没反应过来,通过burp一次发送多个数据包实现一次领取很多优惠券:
我们开启抓包,点击立即领取,抓到相应数据包之后发送到repeater,并丢弃掉这个数据包:
右键,send to intruder,在option里面,将线程调整为100,发送时间改为0:
在payload中设置随机数:
随便给一个没啥用的参数添加为payload,然后start attack:
最后我们查看一下我们的优惠券页面:
当然,不只是优惠券这里可以实现竞争支付漏洞,我们也可以在付款的时候,如果我们账户内没有很多的钱,但是我们也可以通过这样的方式,来多线程用一份钱支付多次。