逻辑漏洞 - 支付漏洞
  支付系统中的逻辑漏洞可能导致严重的经济损失。常见的支付漏洞包括:支付金额篡改、订单重放攻击、竞态条件、支付流程绕过、整数溢出和浮点数精度问题等。
  这些漏洞可能使攻击者以低于正常价格购买商品,重复使用同一订单,或完全绕过支付流程。此场景中商品价格设置为10000元 余额为1000元

漏洞场景:支付金额参数篡改

商品数量:  商品单价: 
tips
  支付金额参数篡改:由于未对客户端传入的价格参数进行验证,攻击者可以修改支付金额。尝试修改商品单价为更低的值(如0.01)进行支付。
测试结果

                                        

缺陷代码

漏洞场景:订单重放攻击

订单ID:  订单金额: 
tips
  订单重放攻击:由于未对订单是否重复支付进行验证,攻击者可以重复发送相同的支付请求。尝试多次点击支付按钮,观察是否可以重复扣款。
测试结果

                                        

缺陷代码

漏洞场景:竞态条件漏洞

订单ID:  支付金额: 
tips
  竞态条件:当多个请求同时处理时,由于并发控制不当,可能导致余额计算错误。尝试点击"模拟并发支付"按钮,系统会同时发送多个相同的支付请求。
测试结果

                                        

缺陷代码

漏洞场景:支付流程绕过

订单ID: 
订单ID: 
订单ID: 
tips
  支付流程绕过:由于状态校验不完整,攻击者可能绕过支付流程直接修改订单状态。尝试创建订单后,直接发送支付通知,而不进行实际支付。
测试结果

                                        

缺陷代码

漏洞场景:整数溢出漏洞

商品数量:  商品单价: 
tips
  整数溢出漏洞:当count或price数值过大时,可能会导致整数溢出。尝试输入非常大的数值,如数量设置为2147483647,单价设置为10,或者其他可能导致溢出的组合。
测试结果

                                        

缺陷代码

漏洞场景:浮点数精度漏洞

商品数量:  商品单价: 
tips
  浮点数精度漏洞:由于浮点数计算的精度问题,可能导致金额计算不准确。尝试输入特殊的浮点数值,如数量0.1,单价0.2,实际结果可能不是精确的0.02。
测试结果

                                        

缺陷代码