越权漏洞
越权漏洞概述:
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;
平行越权:
A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,
但是A用户越权操作了B用户的个人信息的情况
垂直越权:
A用户权限高于B用户,但是B用户越权操作了A用户的权限
越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致。每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的,因此越权漏洞很难通过扫描工具发现出来,往往需要通过手动进行测试。
前端用户平行越权
我们用lucy进行登录,然后查询个人信息;
然后我们将上面url中用户名参数改为lili,就可以查询到lili的信息;
看看源码可知,这里没有对用户登陆进行仔细的判断,导致可以查看其它评级用户的信息;
垂直越权
首先使用超级管理员登陆,发现有管理用户的权限;
然后我们创建一个新的用户;
在创建时,我们进行抓包,可以看到有登录状态的cookie;
然后我们将其发送到Repeater,然后退出超级管理员登陆,然后点击Forward进行重定向,定向到登录页面;
我们继续用超级管理员登陆,可以看到只有一个用户被创建,没有第二个用户;
然后我们用普通管理员的登录,发现普通用户只有查看权限;
然后进行抓包,将其登录态cookie复制到超级管理员登录时的cookie,点击go之后,再点击follow进行重定向;
可以看到直接跳转到登录态中去;
刷新登录页面,可以看到又有一个用户被创建,可以知道一个是超级管理员创建的,一个是普通管理员创建的;