从业者-特定领域的缺陷-无限金钱
# 实验室:无限金钱逻辑缺陷
# 题目
此实验室的 采购工作流程 存在逻辑缺陷。要解决实验室问题,请利用此缺陷购买一件 “Lightweight l33t leather jacket” 。
你可以使用以下凭据登录到自己的帐户:wiener
:peter
- name: 实验室-从业者
desc: 无限金钱逻辑缺陷 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-infinite-money
bgColor: '#001350'
textColor: '#4cc1ff'
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 该实验室的 采购流程 中存在逻辑缺陷,利用该缺陷购买一件名为 “Lightweight l33t leather jacket” 的商品。
点击 “ACCESS THE LAB” 进入实验室。

在首页中可以看到很多商品,其中有我们需要的 “Lightweight l33t leather jacket” 。
点击 “My account” 转到登录页面。

输入题目中提供的用户名和密码,登录相应账户。

登录之后,在账户页面可以看到一个 礼品卡兑换 功能,输入卡号可以兑换相应的东西。

# 礼品卡测试
回到首页,刚好可以看到一个同名的商品 “Gift Card” ,进入该商品详情页。

添加一个礼品卡到购物车。

点击图标进入购物车界面。

先购买一个礼品卡试试水。

购买成功之后,程序会返回 礼品卡代码 并显示在页面下方。
此时账户余额从 100 变为 90 元。

回到账户页面,输入刚刚购买的礼品卡代码,点击 “Redeem” 提交。

使用礼品卡之后,账户余额从 90 变为了 100 元。

这是兑换礼品卡的请求数据包。

同一个礼品卡代码无法重复使用。
那该如何实现 无限金钱 呢?

# 获取优惠券
在上一道题目中,我们知道了 优惠券 的存在。
回到首页,将页面滚动至最下方,可以看到一个订阅功能。输入任意邮箱 例如a@b.c
,然后点击 “Sign up” 提交表单。

订阅成功之后,会获得一个优惠券代码SIGNUP30
。

在购物车页面可以输入优惠券代码,以获得30%
的折扣(打七折)。
例如,总价格为 10 元,打折之后为 7 元。

# 无限礼品卡
通过优惠券,我们可以 “低价格买入 高价格卖出” 。
购买 10 个礼品卡,总价格为 100 元,打折之后为 70 元。

购买成功之后,账户余额从 100 变为 30 元。

随后,将上述购买的 10 个礼品卡全部兑换,账户余额从 30 变为了 130 元,净赚 30 。
并且,优惠券可以一直使用,疯狂薅羊毛。

虽然可以无限刷钱,但是 手动兑换礼品卡代码 太累了。
先捕获一个兑换礼品卡的数据包,然后转发到 Intruder 模块,并将礼品卡代码添加至选区。

再次购买一大批礼品卡,复制所有卡号。

回到 Intruder 模块设置攻击载荷,点击 “Paste” 将复制的卡号全部粘贴进去。

粘贴之后,所有卡号依次排列,点击 “Start attack” 开始攻击。

每个卡号都会被成功使用。

继续购买礼品卡,购买的数量逐次增加。

购买成功之后,再次复制所有卡号。
回到 Intruder 模块,点击 “Clear” 清除上一次的卡号。

清除旧卡号之后,点击 “Paste” 将新的卡号粘贴进去。

“购买礼品卡 --> 复制卡号 --> 清除旧卡号 --> 粘贴新卡号 --> 攻击”
重复上述步骤,直到账户余额 >= 1337 元。

经过几分钟的操作,账户余额来到了 1513 元,已经可以购买目标商品了。
添加目标商品至购物车,点击 “Place order” 提交订单。

购买成功,实验完成。

# 小作业
购买礼品卡 --> 获取卡号 --> 使用礼品卡
以上步骤可以使用 BurpSuite 的 “宏” 来实现完全的自动化,自己尝试尝试。
# 修复建议
支付漏洞6 - 无限金钱
- 优惠券限制:礼品卡一类的商品不允许使用优惠券。
无限礼品卡?无限优惠券?国内商家好好学学