文章目录
4.13. 逻辑漏洞 / 业务漏洞4.13.1. 简介4.13.2. 安装逻辑4.13.3. 交易4.13.3.1. 购买4.13.3.2. 业务风控
4.13.4. 账户4.13.4.1. 注册4.13.4.2. 邮箱用户名4.13.4.3. 手机号用户名4.13.4.4. 登录4.13.4.5. 找回密码4.13.4.6. 修改密码4.13.4.7. 申诉
4.13.5. 2FA4.13.6. 验证码4.13.7. Session4.13.8. 越权4.13.9. 随机数安全4.13.10. 其他4.13.11. 参考链接
4.13. 逻辑漏洞 / 业务漏洞
4.13.1. 简介
逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。
在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。
4.13.2. 安装逻辑
查看能否绕过判定重新安装查看能否利用安装文件获取信息看能否利用更新功能获取信息
4.13.3. 交易
4.13.3.1. 购买
修改支付的价格修改支付的状态修改购买数量为负数修改金额为负数重放成功的请求并发数据库锁处理不当
4.13.3.2. 业务风控
刷优惠券套现
4.13.4. 账户
4.13.4.1. 注册
覆盖注册尝试重复用户名注册遍历猜解已有账号
4.13.4.2. 邮箱用户名
前后空格大小写变换
4.13.4.3. 手机号用户名
前后空格+86
4.13.4.4. 登录
撞库账号劫持恶意尝试帐号密码锁死账户
4.13.4.5. 找回密码
重置任意用户密码密码重置后新密码在返回包中Token验证逻辑在前端X-Forwarded-Host处理不正确
4.13.4.6. 修改密码
越权修改密码修改密码没有旧密码验证
4.13.4.7. 申诉
身份伪造逻辑绕过
4.13.5. 2FA
重置密码后自动登录没有2FAOAuth登录没有启用2FA2FA可爆破2FA有条件竞争修改返回值绕过激活链接没有启用2FA可通过CSRF禁用2FA
4.13.6. 验证码
验证码可重用验证码可预测验证码强度不够验证码无时间限制或者失效时间长验证码无猜测次数限制验证码传递特殊的参数或不传递参数绕过验证码可从返回包中直接获取验证码不刷新或无效验证码数量有限验证码在数据包中返回修改Cookie绕过修改返回包绕过验证码在客户端生成或校验验证码可OCR或使用机器学习识别验证码用于手机短信/邮箱轰炸
4.13.7. Session
Session机制Session猜测 / 爆破Session伪造Session泄漏Session Fixation
4.13.8. 越权
水平越权
攻击者可以访问与他拥有相同权限的用户的资源权限类型不变,ID改变
垂直越权
低级别攻击者可以访问高级别用户的资源权限ID不变,类型改变
交叉越权
权限ID改变,类型改变
4.13.9. 随机数安全
使用不安全的随机数发生器使用时间等易猜解的因素作为随机数种子
4.13.10. 其他
用户/订单/优惠券等ID生成有规律,可枚举接口无权限、次数限制加密算法实现误用执行顺序敏感信息泄露
4.13.11. 参考链接
水平越权漏洞及其解决方案细说验证码安全 测试思路大梳理