水平越权
通过修改用户身份ID值,或者其他能表示用户身份的信息,达到伪造身份,修改他人信息,实战如图
比如在实战中我们在修改信息时抓包发现ID处值可以修改,尝试修改后看信息变化
防御
1、前后端同时对用户输入信息进行校验,双重验证机制
2、 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
3、可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。或在 session、cookie 中加入不可预测、不可猜解的 user 信息。
4、直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
垂直越权
从低权限跨越高高权限,需要满足某些条件:
条件:可以抓到admin可操作的数据包
1、普通用户前端有操作界面可以抓取数据包
2、盲猜
3、通过网站源码本地搭建自己去获取
防御
同上
交叉越权
平行越权:权限类型不变,权限ID改变
垂直越权:权限ID不变,权限类型改变
交叉越权:既改变ID,也改变权限
举例子:
平行越权,用户user的id是100,用户batman的id是101,user在修改信息时把id改成了101,实现了水平越权
垂直越权,用户修改参数时,请求包中有adminType=-1,你把他改为1,拥有了管理员组的功能,实现垂直越权
交叉越权,user用户修改admin信息,既改变ID,也改变权限
如果有越权就会存在交叉越权
未授权访问
不需要输入账号和密码即可登录成功,比如通过返回包的static值判断是否登陆成功,比如知道登录成功后的后台地址直接访问绕过登录框,比如常见中间件容器,框架等存在未授权漏洞