【业务安全实战演练】业务流程乱序测试07

发布时间 2023-12-20 21:52:53作者: 橙子全栈测试笔记

一、流程乱序测试

1 、测试原理和方法
该项测试主要针对业务流程的处理流程是否正常,确保攻击者无法通过技术手段绕过某些重要流程步骤,检验办理业务过程中是否有控制机制来保证其遵循正常流程。例如业务流程分为三步:第一步,注册并发送验证码;第二步,输入验证码;第三步,注册成功。在第三步进行抓包分析,将邮箱或手机号替换为其他人的,如果成功注册,就跳过了第一步和第二步,绕过了正常的业务流程
2、测试过程
攻击者访问注册页面,注册测试账户,充值提交并抓取数据包,填写任意充值金额并抓包,获取订单号,利用订单号构造充值链接并访问链接,查看是否充值成功,如果充值成功说明存在业务流程绕过问题
以某社交网站为例,经过测试发现订单生成后流程走至链接http://www.xxx.com/index.php?controller=site&action=payok&out_trade_no=,只要提供对应的充值订单号就可以绕过支付环节,未经支付直接充值成功。

步骤一:新注册一个账号进行测试,如图所示。

账号余额为0,如图所示。

步骤二:对账号充值并用Burp Suite工具进行数据包截取,金额可随意填写,如图所示。

步骤三:截获支付订单数据包,放弃支付,获取生成的订单号,如图所示。

步骤四:利用获取的订单号构造链接http://www.xxx.com/index.php?controller=site&action=payok&out_trade_no=充值订单号,直接访问这个链接即可成功充值,如图所示

充值后的余额如图所示。

修复建议
针对此类漏洞,建议对敏感信息如身份 ID、账号密码、订单号、金额等进行加密处理,并在服务端对其进行二次比对。

二、总结

对于乱序测试只有一个子分类,也就是业务乱序测试,很简单。大体就是测试流程过程中,其业务顺序可以绕过或是不按规定的顺序也可以执行成功,则存在流程乱序的问题。