11.1 业务流程绕过测试
11.1.1 测试原理和方法
该项测试主要针对业务流程的处理流程是否正常,确保攻击者无法通过技术手段绕过
某些重要流程步骤,检验办理业务过程中是否有控制机制来保证其遵循正常流程。例如业
务流程分为三步:第一步,注册并发送验证码;第二步,输入验证码;第三步,注册成
功。在第三步进行抓包分析,将邮箱或手机号替换为其他人的,如果成功注册,就跳过了
第一步和第二步,绕过了正常的业务流程。
11.1.2 测试过程
攻击者访问注册页面,注册测试账户,充值提交并抓取数据包,填写任意充值金额并
抓包,获取订单号,利用订单号构造充值链接并访问链接,查看是否充值成功,如果充值
成功说明存在业务流程绕过问题,如图 11-1 所示。
以某社交网站为例,经过测试发现订单生成后流程走至链接
http://www.xxx.com/index.php?controller=site&action=payok&out_trade_no=,只要提供对
应的充值订单号就可以绕过支付环节,未经支付直接充值成功。
图 11-1 业务流程绕过测试流程
步骤一:新注册一个账号进行测试,如图 11-2 所示。
图 11-2 注册账号
账号余额为 0,如图 11-3 所示。
图 11-3 账户余额
步骤二:对账号充值并用 Burp Suite 工具进行数据包截取,金额可随意填写,如图 11-4 所示。
图 11-4 充值并抓包
步骤三:截获支付订单数据包,放弃支付,获取生成的订单号,如图 11-5 所示。
图 11-5 获取支付订单号
步骤四:利用获取的订单号构造链接
http://www.xxx.com/index.php?
controller=site&action=payok&out_trade_no=充值订单号,直接访问这个链接即可成功充
值,如图 11-6 所示。
图 11-6 支付成功
充值后的余额如图 11-7 所示。
图 11-7 充值后的余额
11.1.3 修复建议
针对此类漏洞,建议对敏感信息如身份 ID、账号密码、订单号、金额等进行加密处
理,并在服务端对其进行二次比对。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论