zoukankan      html  css  js  c++  java
  • [典型漏洞分享]多线程同步问题导致越过程序限制

    在涉及到钱的问题时,多线程同步问题一定要重点考虑,如果处理不当可能造成无法预料的损失。

    YS 电商优惠券漏洞可以使一张优惠券被多次使用来生成订单【高】

    问题描述:

             用户在YS电商可以使用我们提供的优惠券购买设备,并得到一定金额的优惠,一张优惠券只能使用一次,在提交生成订单的接口时需要带上该优惠券号码,后台系统会根据该优惠券的类型自动减少额度并最终生成订单,但该接口在后台未做并发同步处理,导致一张优惠券可以使用多次并最终生成多个用于支付的订单。

    测试步骤:

    1、  登录YS MALL,选择需要购买的设备CX(此处CX价格为880,优惠券优惠额度为300RMB),并进入购物车提交订单,如图所示:

    clip_image002

    2、  在订单信息中使用使用优惠券,如下图所示:

    clip_image004

    clip_image006

    3、  提交订单并拦截生成订单请求,转入burp intruder,设置相关参数后,发起快速请求,可以看到有4个请求被成功处理,如图所示:

    clip_image008

    4、  转入“我的订单”页面,可以看到成功生成4个订单,并且每个订单都成功地使用了同一个优惠券,如下图所示:

    clip_image010

    5、  查看后台优惠券使用记录也验证了这一点,如图:

    clip_image012

    问题扩展:

             理论上所有的接口都有可能出现此类问题,对于牵涉到敏感业务的接口可能会造成不可预料的后果。

    解决建议:

    1、  处理代码增加同步锁做并发同步处理。

  • 相关阅读:
    计算机硬件内存双通道只显示一根内存条,不能组成双通道
    VMware 虚拟机安装win10操作系统系列问题解决
    编译语言和解释语言区别
    SPSS 24下载与安装+授权码
    Reg文件操作
    DLL注册表文件相关内容
    安装TensorFlow失败
    Anaconda 包管理与环境管理
    Cookie设置域名问题,cookie跨域
    准备篇(二)C语言
  • 原文地址:https://www.cnblogs.com/fishou/p/4201968.html
Copyright © 2011-2022 走看看