如果使用A用户的权限去操作B用户的数据,A的权限小于等于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
水平越权
登入并点击查看信息
查看下URL
发现我们查询的请求显示在URL中,后台查询用户名之后将信息反馈到了web页面
那我们是否可以通过修改URL查询别人的信息呢
这就是水平越权:在自己登录的状态下可以查看其他同级会员信息
代码不安全,没有进行身份信息校验就直接查询出信息
垂直越权
垂直越权一般发生在普通用户越权可以操作管理员工权限的情况。这里的情况是管理员可以查看和新增用户,普通用户只可以查看用户。这里验证过程为:
登录管理员帐号,新增用户,提交请求抓包。
退出管理员帐号,重放新增用户请求,发现不能成功新增用户。
登录普通用户,发现没有新增用户权限,但替换掉1中抓包的请求cookie部分,重放新增用户请求
普通管理员cookie:Cookie: PHPSESSID=7c2u2v8b85jf9a48ik5kvfa925
用户新增成功,垂直越权漏洞验证成功。
代码没有对登录身份级别进行验证