概述
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。
越权漏洞形成的原因是后台使用了不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
因此,在在权限管理中应该遵守:
- 使用最小权限原则对用户进行赋权;
- 使用合理(严格)的权限校验规则;
- 使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
水平越权
A用户和B用户属于同一级别用户,但各自不能操作对方个人信息。
A用户如果越权操作B用户个人信息的情况称为水平越权操作。
使用系统提示给的三个用户登录,访问了一下路径
/vul/overpermission/op1/op1_mem.php?username=lucy&submit=点击查看个人信息
/vul/overpermission/op1/op1_mem.php?username=lili&submit=点击查看个人信息
/vul/overpermission/op1/op1_mem.php?username=kobe&submit=点击查看个人信息
可以看出,只是名字不同而已,所以我们在lucy的个人页面中,不退出,把用户名改成lili,直接可以进到lili的个人页面。
垂直越权
A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。
这里有两个用户admin/123456,bihuoedu/000000,admin权限高于bihuoedu。
登录普通用户bihuoedu,只有查看权限。
登录超级用户 admin,拥有修改用户信息和添加用户的权限。
用admin用户添加一个新用户 并用burp进行抓包 可以看到PHPSESSID。
打开另一个浏览器,登录普通用户bihuoedu后,尝试直接复制admin用户的添加用户网址来进行添加用户 (未授权访问),发现会回到登录界面。
但是用admin用户查看的时候 test2用户已经被添加成功(admin用户需要在登陆状态)。
来源:CSDN
作者:CN_wanku
链接:https://blog.csdn.net/qq_43233085/article/details/104135682