1. 逻辑越权
- 越权: 水平越权、垂直越权
- 登录
- 暴力破解
- 本地加密传输
- Cookie脆弱
- Session劫持
- 密文对比认证
- 业务: 订单ID、手机号码、用户ID、商品ID等
- 数据: 支付篡改、数量篡改、请求重放等
- 找回: 客户端回显、Response状态值、Session覆盖、弱Token缺陷、找回流程绕过等
- 接口: 调用遍历、参数篡改、未授权访问、webservice测试、callback自定义
- 回退: 回退重放
2. 水平垂直越权
2.1 原理
水平越权: 通过更换某个ID之类的身份标识,从而使A账号获取(修改、删除等)B账号数据。 垂直越权: 使用低权限身份账号,发送高权限账号才能有的请求,获取其高权限的操作。 未授权访问: 通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作。
如果在访问数据包中有传输用户的编号、用户组编号或类型编号的时候,可以尝试对这个值进行修改。
2.2 水平越权案例(pikachu平台)
- 输入账号密码登录:
- 登录成功后,点击“点击查看个人信息”按钮,并抓包查看:
- 修改username值,查看返回数据:
2.3 垂直越权案例(pikachu平台)
- 管理员登录:
- 点击“添加用户”,用burpsuite抓包:
- 退出管理员账号,登录一个普通用户账号,并找到普通用户的Cookie:复制并替换原有的管理员的Cookie:
- 刷新页面,发现用户添加成功:
3. 防御修复方案
- 前后端同时对用户输入信息进行校验,双重验证机制
- 调用功能前验证用户是否有权限调用相关功能
- 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
- 直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
- 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤
|