基本介绍
很多Web业务在密码修改成功后或者订单付款成功后等业务模块,在返回上一步重新修改密码或者重新付款时存在重新设置密码或者付款的功能,这时如果能返回上一步重复操作,而且还能更改或者重置结果则存在业务回退漏洞
测试过程
攻击者按正常流程更改业务信息,更改完成后可回退到上一流程再次成功修改业务信息
简易案例
密码修改成功后进行回退测试(检查是否可以回退并进行操作,如果存在可能存在回退漏洞),首先按照正常流程更改密码
尝试是否可以进行回退,结果可以回到重置密码这一步,即第三步,可以修改密码,成功且无限制
修复建议
对于业务流程有多步的情况,例如:修改密码或重置密码等业务,首先判断该步骤的请求是否是上一步骤的业务所发起的,如果不是则返回错误提示或页面失效