渗透测试业务逻辑之流程乱序测试

0x00:前言

上周做渗透,有一个 sql 注入,负责安全审核的人给开发说你们的程序既然还有 sql 注入,我一年也看不见几个。这句话让我又再次深刻的认识到,渗透测试常规的一些注入跨站漏洞不如以前那么盛了,有点经验的开发写东西都会去考虑到了,再加上修复方法也在逐渐的完善,逻辑类的东西也应该并重的去测。

0x01:分类

我把逻辑类的问题大概总结了一下,大概可以分为十个模块,分别是登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入 / 输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口调用模块测试。

这次记录的是第七个模块流程乱序测试。

0x02:流程乱序测试

1,流程乱序测试

测试方法:流程乱序测试也就是绕过正常的业务流程测试,例如一个注册功能,第一填写注册的手机号并发送验证码,第二步输入验证码,第三注册成功。乱序测试的话,可以拦截第三步的数据包,将其注册的信息例如手机号,替换成他人的,如果注册成功,则存在乱序的问题。

再例如,一个充值的功能,在拦截包的过程中发现充值成功后会有一个充值成功的连接,例如是 xxx.com/index.php?controller=site&action=payok&out_trade_no=aaaa,其中 aaa 是充值订单号。接下来注册一个新账号进行充值,在支付产生订单时复制其订单号然后取消支付,把订单号贴到充值成功后的连接中充值成功,则存在乱序问题。

修复方法:首先建议对敏感信息进行加密处理,例如身份 id、账号密码、订单号、金额等。其次,建议在服务器端对其信息进行二次校验,避免修改乱序等情况。

0x03:总结

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

这一篇记录了业务流程乱序测试的相关点,后续会继续对其他模块进行总结。

更多关于代码审计、WEB渗透、网络安全的运维的知识,请关注微信公众号:发哥微课堂。

渗透测试业务逻辑之流程乱序测试