-
1、 简介
- 逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。
-
2、 安装逻辑
- 查看能否绕过判定重新安装
- 查看能否利用安装文件获取信息
- 看能否利用更新功能获取信息
-
3、 交易
- 3.1 购买
- 修改支付的价格
- 修改支付的状态
- 修改购买数量为负数
- 修改金额为负数
- 重放成功的请求
- 并发数据库锁处理不当
- 3.2 业务风控
- 刷优惠券
- 套现
- 3.1 购买
-
4、 账户
- 4.1 注册
- 覆盖注册
- 尝试重复用户名
- 注册遍历猜解已有账号
- 4.2 邮箱用户名
- 前后空格
- 大小写变换
- 4.3 手机号用户名
- 前后空格
- +86
- 4.4 登录
- 撞库
- 账号劫持
- 恶意尝试帐号密码锁死账户
- 4.5 找回密码
- 重置任意用户密码
- 密码重置后新密码在返回包中
- Token验证逻辑在前端
- X-Forwarded-Host处理不正确(X-Forwarded-Host是一个HTTP头部字段,用于在客户端和服务器之间经过代理或负载均衡器时,传递客户端请求的原始主机名和域名)
- 4.6 修改密码
- 越权修改密码
- 修改密码没有旧密码验证
- 4.7 申诉
- 身份伪造
- 逻辑绕过
- 4.1 注册
-
5、 2FA
- 一种安全密码验证方式
- (2FA,双因子验证/双因素验证,是一种安全密码验证方式。区别于传统的密码验证,由于传统的密码验证是由一组静态信息组成,如:字符、图像、手势等,很容易被获取,相对不安全。2FA是基于时间、历史长度、实物(信用卡、SMS手机、令牌、指纹)等自然变量结合一定的加密算法组合出一组动态密码,一般每60秒刷新一次。不容易被获取和破解,相对安全。)
- 重置密码后自动登录没有2FA
- OAuth登录没有启用2FA
- (OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的账号信息(如[用户名]与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的)
- 2FA可爆破
- 2FA有条件竞争
- 修改返回值绕过
- 激活链接没有启用2FA
- 可通过CSRF禁用2FA
- 一种安全密码验证方式
-
6、 验证码
- 验证码可重用
- 验证码可预测
- 验证码强度不够
- 验证码无时间限制或者失效时间长
- 验证码无猜测次数限制
- 验证码传递特殊的参数或不传递参数绕过
- 验证码可从返回包中直接获取
- 验证码不刷新或无效
- 验证码数量有限
- 验证码在数据包中返回
- 修改Cookie绕过
- 修改返回包绕过
- 验证码在客户端生成或校验
- 验证码可OCR或使用机器学习识别
- 验证码用于手机短信/邮箱轰炸
-
7、 Session
- Session机制
- Session猜测 / 爆破
- Session伪造
- Session泄漏
- Session Fixation
-
8、 越权
- 水平越权
- 攻击者可以访问与他拥有相同权限的用户的资源
- 权限类型不变,ID改变
- 垂直越权
- 低级别攻击者可以访问高级别用户的资源
- 权限ID不变,类型改变
- 交叉越权
- 权限ID改变,类型改变
- 水平越权
-
9、 随机数安全
- 使用不安全的随机数发生器
- 使用时间等易猜解的因素作为随机数种子
-
10、 其他
- 用户/订单/优惠券等ID生成有规律,可枚举
- 接口无权限、次数限制
- 加密算法实现误用
- 执行顺序
- 敏感信息泄露
-
11、参考链接
- 水平越权漏洞及其解决方案
- 细说验证码安全 测试思路大梳理
09-26
12-21
474
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)