第五关 低级逻辑缺陷
这一关就是考察一个整数溢出的问题,先让一个商品整数溢出到一个较小的负值,然后再添加一个商品抵消总价,我们再以低价进行购买商品
提示:1、靶场未充分验证用户输入
2、可以利用其购买工作流程中的逻辑缺陷以意外价格购买商品
3、己的帐户:wiener:peter
具体操作:
1、先过一下正常购买流程:登录wiener,添加皮夹克到购物车购买失败,余额不足

2、找到触发添加商品到购物车的POST /cart 请求数据包,发送到 Burp Repeater
、如图输入100是不行的,说明对于商品数量参数,前端做了验证

如图:修改参数为100后,发送数据包,返回响应是无效参数,这说明后端也做了验证
所以数量参数最多只能填到99的两位数,写到100的话就显示无效参数了

也就是说对商品数量参数前后端都做了验证
3、由于这关没有价格参数,也没有数量负值可以利用,上面已经尝试了数量写到100就是无效了,那说明数量是有个边界范围的,订单数量1-99之间
现在思路就是:对订单总金额进行测试,是否设置一个最大值
尝试过多次测试发现漏洞:订单金额是有边界的,当达到一个最大值时,就变成了负值
那这就是一个整数溢出的漏洞
先随便选择一个商品,我这里选择商品id=6发往intruder,数量写99,注意这里不要添加任何变量

payloads设置:选择空payloads,无限期循环

线程池保持默认就行,开始攻击
爆破整数溢出,出现最小值负数需要点时间
如图出现一个较小的负值了,然后暂停爆破

4、暂停爆破后,添加要购买的商品id=1的皮夹克商品,再次爆破下

payloads设置如图:

5、爆破皮夹克完了之后,如图:花点时间调整下

6、提交订单,靶场过关
