第三关 多端点条件竞争
这一关就是通过并发两个不同的请求,实现条件竞争漏洞,以低价购买到商品
提示:1、靶场的购买流包含一个竞争条件,使你能够以非预期的价格购买商品。
2、帐户:wiener:peter
3、解决此实验室需要 Burp Suite 2023.9 或更高版本
4、在尝试时,我们建议您购买礼品卡,因为您可以稍后兑换它以避免用完商店积分
具体操作:
1、正常用账号wiener:peter登录,登录进去后,去商品首页购买10元的礼品卡,完成订单支付购买以后,
就会得到一个返现的优惠劵码

得到返现券码:sH20FGFxtV

返回我的账户,兑换返现码,让余额返现10元

把这个添加礼物卡的POST /cart数据包发往repeater

发往repeater,然后重放这个添加礼品卡的数据包看能不能用
发完数据包后,刷新下浏览器,就又重新添加了商品到购物车

把这个结账的数据包发往repeater

重发一下这个结账的数据包,看能不能重用,得到新的优惠劵
得到了第三个优惠劵说明这个数据包可以重复用

知道了购买逻辑,接下来我就先去添加到购物车,买一张这个10元礼品卡,然后去结算,发这个结算数据包的同时,再发一个添加“皮夹克”商品到购物车的数据包
就是说先添加10元礼品卡到购物车,然后就是礼品卡的结算数据包和新添加“皮夹克”商品到购物车的数据包,这两个数据包要同时发
先发送添加商品的数据包,重新添加10元礼品卡到购物车:

然后就是礼品卡的结算数据包和新添加“皮夹克”商品到购物车的数据包,这两个数据包要同时发:
先把这里改成produetId=2,就是皮夹克

创建标签组

先勾选2结算数据包再勾选1添加商品数据包

创建完标签组:
1、选择并发,发送
2、现在问题就是,结算是成功了

问题就是结算是成功了,但是购买的是10元的礼品卡
结算checkout数据包是成功了,但是完成订单后页面是显示空的购物车,这就代表一个问题,代表了购物车里添加的这个“皮夹克”商品并没有加到我生成的订单里面去,而且也没有加到一个新的购物车里面去,也就是说没有对本来要生成的结算订单生效

为了方便,单独给这个10元礼品卡添加到购物车的数据包创建一个组

这两个请求的顺序是希望先结算订单,再添加新的商品,这样才能以原本10元的价格购买两件商品
但是怎么发,取决于服务器
接下里多测几次并发,看第几次成功
并发发送后,如果要是执行的是先添加“皮夹克”到购物车的数据包,再去结算10元卡的订单数据包,那就生效不了,因为价格不对

再次重新测试:
1、先发送这第三个数据包添加10元礼品卡到购物车
2、再把第一个添加皮夹克到购物车的数据包和10元礼品卡结算的数据包进行并发

经过多次重复并发测试,终于成功

成功购买,靶场过关
