一、定义:
攻击者利用业务的设计缺陷,获取敏感信息或破坏业务完整性。本质是程序逻辑输入管控不严,未对用户数据进行严格把控,导致程序不能正常处理或处理错误。常见于登录注册、密码找回、信息查看、交易支付等场景。
二、类型:
- 未授权访问
- 验证码绕过
- 密码找回
- 密码修改
- 支付漏洞
- 水平越权
- 垂直越权
- 交叉越权
- 突破限制
三、寻找方法
寻找逻辑漏洞需要具备发散思维,细致审查程序逻辑,考虑各种可能的用户行为和输入情况。
四、漏洞防范:
- 前后端同时对用户登录输入信息等进行检测。
- 对用户输入可控参数进行严格校验,防止攻击者枚举。
- 对同一IP设置访问次数限制。
- 添加验证码校验、短信校验等,同时对验证码重发时间进行限制。
- 执行关键操作前必须验证用户身份,确保用户具备操作数据权限。
- 对于特别敏感的操作,可以要求用户再次输入密码或其他验证信息。
- 从用户的加密认证Cookie中获取当前用户ID,防止攻击者篡改。或在session cookie中加入不可预测、不可猜解的用户信息。