回退模块测试

回退测试

测试原理和方法

很多Web业务在密码修改成功后或者订单付款成功后等业务模块,在返回上一步重新 修改密码或者重新付款时存在重新设置密码或者付款的功能,这时如果能返回上一步重复 操作,而且还能更改或者重置结果,则存在业务回退漏洞。

测试过程

攻击者按正常流程更改业务信息,更改完成后可回退到上一流程再次成功修改业务信息,如图所示。

image.png

以某网站修改密码为例。 步骤一:密码修改成功后,进行回退测试(检查是否可以回退,并进行操作,如果存 在,可能存在回退漏洞),首先按照正常流程更改密码,如图所示。

image.png

步骤二:尝试是否可以进行回退,结果可以回到重置密码这一步,即第三步,可以修 改密码,成功且无限制,如图所示

image.png

修复建议

对于业务流程有多步的情况,如修改密码或重置密码等业务,首先判断该步骤的请求 是否是上一步骤的业务所发起的,如果不是则返回错误提示或页面失效。