促销折扣前端校验绕过漏洞"

admin 2026-11-09 01:29:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

促销折扣前端校验绕过漏洞

原创

山水SRC
山水SRC

山水SRC

2026年11月7日 08:58
河南

去阅读

免责声明

本公众号分享的所有渗透测试技术文章仅面向合法授权的安全测试、学习交流与研究用途。读者必须确保自身行为符合《网络安全法》等相关法律法规,严禁将其用于任何未授权攻击等非法活动。因不当使用或传播相关内容所引发的任何法律责任与风险,由行为人自行承担,本公众号(或本人)概不负责

前提

技术性描述

① 系统在购物车页面的“结账”按钮上通过前端 JavaScript 实现了折扣条件的校验(如商品数量 ≥ 2 且总价 ≥ 69 欧元),条件不满足时弹出提示并自动取消折扣。

② 后端在结账页面或订单生成接口中,未独立校验折扣条件,而是直接信任前端提交的折扣状态(如购物车中已应用的折扣标记)。

③ 用户可通过直接输入结账页面的 URL(如 /checkout)或通过书签、历史记录等方式跳过前端校验,后端因缺乏校验而继续保留折扣。

通俗易懂

① 系统只在购物车页面的“结账”按钮上检查你有没有达到打折条件,比如要买够 2 件商品且满 69 欧元,否则点按钮时会弹出提示并取消折扣。

② 但后端在真正的结账页面里没有再检查一遍,而是直接相信你之前已经满足了条件。

③ 所以你不点那个按钮,而是直接在浏览器地址栏输入结账页的网址跳过去,系统就以为你已经通过了检查,照样给你打折。

测试流程

  1. 向购物车添加 1 件高价商品(如 99.99 欧元),确保总价超过 69 欧元但数量不足 2 件。在购物车页面选择参加优惠活动,观察界面显示折扣已生效(如总价变为 79.99 欧元)。
  2. 不要点击购物车页面中的“结账”按钮(该按钮会触发前端校验并取消折扣),而是在浏览器地址栏直接输入结账页面的 URL(例如 /checkout 或 /cart/checkout),或通过收藏夹、历史记录跳转。
  3. 观察结账页面显示的订单总金额:若仍显示折扣后的价格(如 79.99 欧元),且刷新页面后折扣未恢复原价,则证明后端未重新校验条件,漏洞存在。
  4. 可进一步尝试直接提交订单,确认是否以折扣价完成支付。

危害

  1. 用户可通过绕过前端校验,在不满足促销条件的情况下享受折扣,直接造成商家收入损失。
  2. 促销活动的规则形同虚设,活动效果数据失真,影响后续运营决策和预算分配。
  3. 该漏洞可被自动化工具批量利用,攻击者只需少量商品即可反复享受折扣,扩大经济损失。

    评论:0   参与:  0