业务流程绕过测试

测试原理和方法

该项测试主要针对业务流程的处理流程是否正常,确保攻击者无法通过技术手段绕过 某些重要流程步骤,检验办理业务过程中是否有控制机制来保证其遵循正常流程。例如业务流程分为三步:第一步,注册并发送验证码;第二步,输入验证码;第三步,注册成功。在第三步进行抓包分析,将邮箱或手机号替换为其他人的,如果成功注册,就跳过了第一步和第二步,绕过了正常的业务流程。

测试过程

攻击者访问注册页面,注册测试账户,充值提交并抓取数据包,填写任意充值金额并 抓包,获取订单号,利用订单号构造充值链接并访问链接,查看是否充值成功,如果充值 成功说明存在业务流程绕过问题,如图所示。 以某社交网站为例,经过测试发现订单生成后流程走至链接 http://www.weikeu.com /index.php?controller=site&action=payok&out_trade_no=,只要提供对 应的充值订单号就可以绕过支付环节,未经支付直接充值成功。

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

修复建议

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