实战篇——支付逻辑漏洞portswigger靶场实战
实战篇——支付逻辑漏洞portswigger靶场实战
portswigger是burpsuite的官方在线靶场,内置了大量常见Web漏洞的场景,本章以Business logic vulnerabilities一章为例,浅析支付逻辑漏洞。
Excessive trust in client-side controls
点击Add to cart,抓包:
将price改成1,发送:
成功篡改价格,点击Place order:
轻松搞定:
这是最基本的支付逻辑漏洞,直接篡改商品价格即可。
High-level logic vulnerability
与上关最大的区别在于删去了price参数,因此可以考虑篡改quantity参数:
改为-1,发送:
成功将商品数量改为-1,但此时无法直接提交订单,会报错提示总价不能小于0:
解决方法就是通过购买一定数量的其他商品使得总价为正数但又不超过100:
提交订单,但发现并没有显示通关:
原因在于Leather Jacket购买数量为-1是不会发货的,解决方法就是交换正负:
提交订单,成功:
这也是一种常见的支付逻辑漏洞,直接篡改商品数量为负数即可。
Flawed enforcement of business rules
此处映入眼帘的是一张优惠券:
直接叠加优惠券会被检测到:
观察到商品主页的底部可以通过填写邮箱获得优惠券:
使用该优惠券并尝试交叉叠加优惠券,发现成功:
凑成零元购,提交订单:
成功:
本关通过交叉叠券实现支付逻辑漏洞的利用。
Low-level logic flaw
当商品数量超过某个值时总价会发生上溢:
继续增加商品数量,使得成为最大的负数:
通过添加一定数量的其他商品控制总价在0~100之间:
提交订单,成功:
本关通过整数溢出实现支付逻辑漏洞的利用。