Over Permission - Pikachu

概述:

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。

越权漏洞形成的原因是后台使用了不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

因此,在权限管理中应该遵守:

  1. 使用最小权限原则对用户进行赋权;
  2. 使用合理(严格)的权限校验规则;
  3. 使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

平行越权:A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,,A用户如果越权操作B用户的个人信息的情况称为平行越权操作。

垂直越权:A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。

越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致的。

每个应用系统其用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的。

因此越权漏洞很难通过扫描工具发现,往往需要通过手动进行测试。

靶场:

水平越权:

1.进入页面,使用 lucy/123456登录账号,查看个人信息,

 2.观察url发现是通过GET请求,将查询的用户信息传递到后端,

 3.修改username为lili,个人信息发生改变,说明存在水平越权的漏洞

产生原因:

后台通过get请求获取到当前登录态的值后并没有进行严谨的校验权限对比(比如传进来的值是lili,通过校验后应该获取的是lili的信息),使得用户可以越权获取别的用户的个人信息。

垂直越权:

1.进入页面,登录超级管理员页面,

 2.创建用户xiao,并且抓包发送至Repeater模块,

3.退出管理员账号,重放这个数据包,这时候用户是会添加失败的,因为没有登录状态

登录普通用户账号,取出当前账号的Cookie。

 4.用上图中的Cookie修改我们刚刚发送到 Repeater 中那个数据包的  Cookie,再重放这个数据包。这时候就添加了另一个用户,第一个是超级管理员添加的;另一个是普通用户重放超级管理员的数据包添加的。

参考:

https://blog.csdn.net/angry_program/article/details/104435334/

https://www.cnblogs.com/dogecheng/p/11645784.html

posted @ 2020-08-16 01:02  3cH0_Nu1L  阅读(186)  评论(0编辑  收藏  举报