实战篇——支付逻辑漏洞portswigger靶场实战

实战篇——支付逻辑漏洞portswigger靶场实战

portswigger是burpsuite的官方在线靶场,内置了大量常见Web漏洞的场景,本章以Business logic vulnerabilities一章为例,浅析支付逻辑漏洞。

Excessive trust in client-side controls

image-20240721194328005

点击Add to cart,抓包:

image-20240721194432526

将price改成1,发送:

image-20240721194507436

成功篡改价格,点击Place order:

image-20240721194550559

轻松搞定:

image-20240721194719816

这是最基本的支付逻辑漏洞,直接篡改商品价格即可。

High-level logic vulnerability

image-20240721195250233

与上关最大的区别在于删去了price参数,因此可以考虑篡改quantity参数:

image-20240721195516802

改为-1,发送:

image-20240721195556901

成功将商品数量改为-1,但此时无法直接提交订单,会报错提示总价不能小于0:

image-20240721195800425

解决方法就是通过购买一定数量的其他商品使得总价为正数但又不超过100:

image-20240721200033248

提交订单,但发现并没有显示通关:

image-20240721200329184

原因在于Leather Jacket购买数量为-1是不会发货的,解决方法就是交换正负:

image-20240721200633256

提交订单,成功:

image-20240721200656101

这也是一种常见的支付逻辑漏洞,直接篡改商品数量为负数即可。

Flawed enforcement of business rules

此处映入眼帘的是一张优惠券:

image-20240721201501895

直接叠加优惠券会被检测到:

image-20240721201609895

观察到商品主页的底部可以通过填写邮箱获得优惠券:

image-20240721201712216

使用该优惠券并尝试交叉叠加优惠券,发现成功:

image-20240721201817213

凑成零元购,提交订单:

image-20240721201919937

成功:

image-20240721201957671

本关通过交叉叠券实现支付逻辑漏洞的利用。

Low-level logic flaw

当商品数量超过某个值时总价会发生上溢:

image-20240721203123217

继续增加商品数量,使得成为最大的负数:

image-20240721204203064

通过添加一定数量的其他商品控制总价在0~100之间:

image-20240721204350400

提交订单,成功:

image-20240721204431546

本关通过整数溢出实现支付逻辑漏洞的利用。

posted @ 2024-07-21 20:48  yaoguyuan  阅读(107)  评论(0编辑  收藏  举报