10.1 商品支付金额篡改测试
10.1.1 测试原理和方法
电商类网站在业务流程整个环节,需要对业务数据的完整性和一致性进行保护,特别
是确保在用户客户端与服务、业务系统接口之间的数据传输的一致性,通常在订购类交易
流程中,容易出现服务器端未对用户提交的业务数据进行强制校验,过度信赖客户端提交
的业务数据而导致的商品金额篡改漏洞。商品金额篡改测试,通过抓包修改业务流程中的
交易金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并
提交,查看能否以修改后的金额数据完成业务流程。
10.1.2 测试过程
该项测试主要针对订单生成的过程中存在商品支付金额校验不完整而产生业务安全风
险点,通常导致攻击者用实际支付远低于订单支付的金额订购商品的业务逻辑漏洞,如图
10-1 所示。
测试过程以登录 http://www.xxx.cn/service/electronic/init.action 网上营业厅购买充值卡
为例。
图 10-1 测试流程图
步骤一:购卡选择卡面值后进入支付平台页面,如图 10-2 所示。
图 10-2 实际支付金额
抓包并篡改支付请求中的明文金额字段 elecCardConfirm.money,如图 10-3 和图 10-4
所示。
图 10-3 抓取支付请求
图 10-4 篡改支付请求中的支付金额字段
步骤二:跳转支付平台,完成篡改后订单金额支付流程,如图 10-5 和图 10-6 所示。
图 10-5 在支付平台支付篡改后的金额
图 10-6 支付平台回调电商平台提示支付完成
步骤三:支付平台支付完成后自动回调商城,显示订单成功生成并完成支付流程,表
明本次测试实现了用篡改后的金额 0.01 元在电商平台订购到 100 元的商品的操作,如图 10-7 所示。
图 10-7 电商平台提示订单已经完成支付
10.1.3 修复建议
商品信息,如金额、折扣等原始数据的校验应来自于服务器端,不应接受客户端传递
过来的值。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论