跳转至

金融类逻辑漏洞

支付类漏洞

负值/正负值对冲

漏洞描述

应用程序未校验订单数据的取值范围,交易存在负值反冲或正负值对冲

渗透测试

提交订单时拦截请求,修改订单参数为负数,如商品单价、数量、总价等。

提交订单(包含多种商品)时拦截请求,修改部分商品的单价或数量,保证订单总金额为正数。

风险评级:高风险

安全建议

  1. 服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。

  2. 服务器端对客户端提交的交易数据(如商品ID、商品数量、商品价格等)的取值范围进行校验,将商品ID和商品价格与数据库中的数据对比校验,商品数量为大于零的整型数。

  3. 服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。

业务流程跳转

漏洞描述

业务逻辑流程分步骤进行且能越过中间校验步骤直接进行后续操作,导致中间校验等步骤失效。

渗透测试

首先完成正常的业务逻辑步骤,获取每一个步骤的请求;

绕过中间步骤,直接访问最后一个或几个验证请求,看是否可绕过。

风险评级:高风险

安全建议

建议在不影响业务的前提下,在Session中添加对每一步流程页面的校验标志位,在新步骤页面浏览过程前要检测之前每一步的session标志位,且要与用户身份强绑定。