概述
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
因此,在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
水平越权 :A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,
但是A用户越权操作了B用户的个人信息的情况
垂直越权 :A用户权限高于B用户,但是B用户越权操作了A用户的权限
越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的,很难通过扫描工具发现出来,往往需要通过手动进行测试
水平越权
根据提示登陆
可以查看个人信息
url中有用户名的参数,我们修改一下
查看源码(路径如下)
这里没有对用户登陆进行判断,导致没有经过验证就查看了其他平级用户的信息,这是水平越权。
垂直越权
查看提示
首先登录admin超级管理员用户:发现有管理用户的权限
我们可以添加一个用户
在点击创建的时候抓包,可以看到数据包,并且有登录状态的cookie
我们将其发送到Repeater,在抓包的页面我们点击Forward把包放出去,让它新建成功。
然后退出超级管理员用户,进入Repeater,点击GO,没有什么变化,是因为退出了admin,它的cookie无效了。
我们可以观察到出来一个重定向。我们点击重定向(Follow redirection),会重定向到登录的页面,因为在重定向之前退出了admin
登录普通用户账号
退出,重新登陆抓包,取出当前用户的Cookie,PHPSESSID=43f3f49ef91399b1fbb011f6fb8d9792
将这个Cookie复制到超级管理员抓的包中,因为我们上一个发送到Repeater的包已经被重定向了,所以我们要找到原来抓的数据包,重新发到Repeater里,再把Cookie的值进行替换,然后点击Go
然后刷新下页面,登陆上(记得代理的状态,所有在浏览器上操作都要在无代理条件下运行,而burpsuite只能在手动代理才可以)
又出现了一个用户,那么第一个是超级管理员添加的;另一个是普通用户重放超级管理员的数据包添加的。