水平越权:通过更换的某个ID之类的身份标识,从而使A账号获取(修改、删除等)B账号数据。
垂直越权:使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作。
未授权访问:通过删除请求中认证信息后重放该请求,依旧可以访问或者完成操作。
垂直越权利用:添加用户
前提条件:获取添加用户的数据包
- 普通用户前端有操作页面可以抓取数据包
- 通过网站源码本地搭建自己去模拟抓取
- 盲猜
原理:
前端安全造成:界面
判断用户等级后,代码界面部分进行可选显示。或只是判断是否登录,并没有验证级别,所以存在越权问题。
后端安全造成:数据库
如果在访问网站数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
修复防御方案:
- 前后端同时对用户输入信息进行校验,双重验证机制
- 调用功能前验证用户是否有权限调用相关功能
- 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
- 直接对象引用的加密资源id,防止攻击者枚举id,敏感数据特殊化处理
- 永远不要相信来自用户的输入,对可控参数进行严格的检查与过滤。
身份认证失效漏洞实战
使用提示账号test登录