首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >走进“乌云”教科书书里的漏洞(5)【刷优惠卷漏洞】

走进“乌云”教科书书里的漏洞(5)【刷优惠卷漏洞】

原创
作者头像
用户11796932
发布2025-09-01 16:51:45
发布2025-09-01 16:51:45
630
举报

0x01 漏洞解析

发包多次获得优惠券漏洞是营销活动中常见的业务逻辑漏洞,主要因系统未对优惠券领取请求进行有效限制,导致攻击者通过重复发送请求(即 "重复发包")绕过领取规则,获取远超正常数量的优惠券,进而利用这些优惠券进行不正当消费。

具体表现与危害:

  • 漏洞成因:系统在设计优惠券领取功能时,未对用户的领取次数、领取频率进行严格限制,或仅在前端进行限制而未在后端实现校验逻辑。攻击者可通过抓包工具(如 Burp Suite)捕获领取优惠券的请求包,然后通过工具重复发送该请求,实现无限次领取。
  • 典型场景:某平台推出 "新用户首次登录送 1 张满 100 减 50 优惠券" 活动,攻击者注册一个新用户后,通过重复发送领取请求,可能一次获得 100 张甚至更多同类型优惠券,随后通过拆分订单等方式使用这些优惠券,大幅降低消费成本。
  • 危害后果:导致优惠券发放数量失控,远超活动预算;破坏营销活动的公平性,影响正常用户体验;大量优惠券被恶意使用会直接造成平台经济损失,严重时可能导致营销活动提前终止。

下图为乌云找到的漏洞。

0x03 漏洞复现

本次使用靶场连接:http://www.loveli.com.cn:12531/see_bug_one?id=71

浏览器打开靶场连接,可以看到一个优惠卷领取页面

点击立即领取,可以领取优惠卷,且已经领取过后的优惠卷无法再进行领取

点击我的优惠券,可以查看已经领取的优惠卷=

获取领取优惠卷的数据包

对数据包进行重放,找到fl

0x04 漏洞修复方法

严格的领取规则与后端校验

  • 明确领取限制条件:在后端代码中明确优惠券的领取规则,如 "每个用户限领 1 张"、"每个设备限领 1 张"、"活动期间限领 3 张" 等,避免仅依赖前端按钮灰化等表面限制。
  • 基于唯一标识限制:以用户 ID(登录状态)或设备指纹(未登录状态)作为唯一标识,在发放优惠券前,后端查询该标识的历史领取记录,若已达到领取上限,则直接拒绝新请求并返回明确提示(如 "您已达到该优惠券的领取上限")。
  • 请求幂等性处理:为每个领取请求生成唯一的幂等标识(如 UUID),前端在发送请求时携带该标识,后端记录已处理的标识,对于重复的标识请求直接返回之前的处理结果,防止因网络延迟等导致用户重复提交。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 漏洞解析
  • 0x03 漏洞复现
  • 0x04 漏洞修复方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档