第十关 无限金钱逻辑缺陷
这一关就是发现商品使用注册订阅后的劵码,可以优惠,完成支付后又可以得到返现的劵码,这样无限的循环可以一直返现钱
注意:理解很简单,但是操作有点复杂
提示:1、靶场采购工作流程存在逻辑缺陷
2、自己的帐户:wiener:peter
3、利用这个缺陷购买了一件“轻量级 l33t 皮夹克”
具体操作:
1、登录进来发现有礼品卡可以兑换

2、先添加一个商品到购物车

随便添加个商品到购物车,发现有卷码可以填写

回到首页,发现可以注册,随便填写个邮箱地址注册

跳到弹出劵码的页面
SIGNUP30

输入卷码发现,10元可以减掉3元

提交订单后,发现又给了一个优惠码
9X1GUBSbSY

返回我的账户
输入优惠码进行兑换返现

输入优惠码兑换后,发现余额加了10块变成了103

以上就是正常的返现流程
然后尝试了下,发现直接把上次注册得到的卷码,直接使用,就是说不用第二次添加商品到购物车后不用再注册一次订阅得到卷码后去使用了

尝试了多次,就是说不用再注册一次订阅得到卷码后去使用了,这时我的余额也变成82了
STKtErAj3U

输入返现劵码,加了10元

之前太久刷新页面,导致页面失效了,现在重新添加商品
既然发现了返现的规律,那再添加价格可以的商品进行返现:

再重新订阅一下

然后提交订单
发现没有返回劵码

然后尝试过其他商品的了,发现只有购买了10元的商品,才有这个返现的优惠卷

那这个10元的商品一个个的返现太麻烦了,这时候使用宏操作一下:
分析了下购买商品然后返现的流程:
POST /cart加购物车——>POST /cart/coupon验劵——>POST /cart/checkout下单——>GET /cart/order-confirmation?order-confirmed=true 确认下单——>POST /gift-card 兑换返现
如图:

分析完流程,我们点击设置settings:
然后点击sessions,然后去Session handling rules下边,点击add

选择scope,然后勾选include all URLs

然后点击Details,来到详情页面

跳转页面

点击add

选择好这几个数据包

1、接下来选择第四个包进行配置,
2、要把第四个请求的响应结果,替换到第五个请求的gift-card参数位置所以复制这个gift-card参数到第四个请求的宏配置里面

然后点击配置

如图进到第四个请求的配置里面

在点击add后,弹出框如图
1、填写gift-card
2、选中这个得到返现劵码的位置,选中之后,每个数据包的这个位置每次请求后都会自动提取这个位置的内容


然后选择第五个数据包,打开进行配置

都配置好后,点击OK

再点击几次OK
回到首页,看到规则已经设置好

测试一下,发送一个包,burp自动运行五个包

如图:确实自动运行了5个包

这个时候,觉得这一个个在repeater发送太慢,一下加几块钱,还有可能减钱

repeater一个个发送太慢,怎么办呢?
尝试使用intruder爆破
随便选择我的账户数据包发往这个intruder,不用设置变量

想了一下:现在我限定发的一个次数,比如余额是113,要购买的是皮夹克1337,那就是1337-113=1224,然后1224除以每次加的3块钱等于要发送408次,但是发送几百次也会慢,咋办呢?
那就把payloads设置成无限制爆破

因为宏设置的是自动运行5个请求,所以这里线程池的话就选择1,每次一个请求就行

现在就不断的自动运行5个请求,进行返现加钱了

刷新了下,但是感觉还是有点慢了,有时候减钱,有时候加钱,要刷新到1337就有点慢了,怎么办呢?

先把这个用intruder自动刷钱的停掉

把宏运行的规则取消掉,避免发送一次请求,就执行5个数据包的情况

比如:现在余额是266,那就是266除以7块(每单优惠3块)等于添加到购物车38次
发送添加到购物车的数据包

刷新下页面,购物车有38个商品

然后发送验劵数据包

如图:优惠了114
然后提交订单

完成支付后,又得到一堆返现劵码

接下来把兑换返现劵码的数据包发往intruder
添加变量

把刚刚得到的一堆劵码,复制到payloads设置

线程池保持默认就行,然后开始攻击
爆破完成去刷新下浏览器
余额一下子就变得很多了

知道了上面这个快速刷新余额返现的流程
那么就拿现在余额380除以7这个流程重复几次,最终购买到皮夹克
注意数量是有限制的,最多只能发送99个商品
经过重复多次流程,余额刷到了1354

直接把皮夹克添加到购物车进行购买
靶场过关

