【juice-shop】★★★★ Christmas Special:通过 SQL 注入订购已删除商品

通过 SQL 注入绕过应用程序的商品可用性检查,将已删除的 2014 年圣诞节特别优惠商品添加到购物车并完成订单。

【juice-shop】★★★★ Christmas Special:通过 SQL 注入订购已删除商品

任务简报

🎯 挑战目标
订购 2014 年圣诞节特别优惠商品。
💡 官方提示 (Hints)
1. 了解应用程序如何处理不可用商品并试图找到漏洞。
2. 了解该应用程序如何向客户隐藏已删除的产品。
3. 尝试构造一条攻击字符串,使已删除的产品重新可见。
4. 您需要将已删除的商品加入购物车并触发结账流程。
5. 上述两种方式均无法通过应用程序前端实现,甚至可能需要采用(半)盲注 SQL 注入技术。

实战:复现漏洞

步骤1:获取 SQL 注入 Payload

如果你已完成 Database Schema 挑战,可以直接使用该 Payload:

1
1'))--

Payload 说明:

  • 1 - 闭合原始的 ID 参数
  • ')) - 闭合原始的 SQL 语句
  • -- - SQL 注释符,忽略后续代码

如果未完成该挑战,可以通过以下方式构造:

SQL 注入示例

步骤2:识别目标商品

访问应用的商品列表,寻找 2014 年圣诞节特别优惠商品。

识别方法:

  • 使用搜索功能搜索 “Christmas”(中文用户搜索“圣诞”)
  • 查看商品详情页面的 ID 号
  • 记录目标商品的 ID(本例中为 ID: 10)

目标商品

步骤3:获取添加购物车的请求

  1. 注册并登录一个账户
  2. 将任意一个可用商品添加到购物车
  3. 使用 Burp Suite 或浏览器开发者工具抓包
  4. 找到添加购物车的 POST 请求

添加购物车请求

步骤4:注入 SQL 绕过

在 Burp Suite 的 Repeater 中修改请求,并发送

修改请求

步骤5:验证商品已添加到购物车

访问购物车页面,查看已删除的圣诞节商品是否成功添加。

购物车验证

步骤6:完成结账流程

  1. 进入购物车
  2. 点击"结账"按钮
  3. 填写收货地址和支付信息
  4. 提交订单(可以使用虚假的信用卡信息)

完成订单

挑战完成! 🎉

参考

使用 Hugo 构建
主题 StackJimmy 设计