zoukankan      html  css  js  c++  java
  • Pikachu-over permission越权漏洞

    越权漏洞概述            

    如果使用A用户(比如普通用户)的权限去操作B用户(比如超级管理员)的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。

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

    垂直越权:显而易见,A用户低于B用户,但A越权操作B用户的权限被称为垂直越权。

    越权漏洞属于逻辑漏洞,是由于权限校验的逻辑不够严谨导致。一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,

    当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

    每个应用系统用户对应的权限是根据其业务功能划分的,而每个企业的业务又都是不一样的。因此越权漏洞很难通过扫描工具发现出来往往需要通过手动进行测试

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

    水平越权            

    先点击提示,登入进去,而在点击查看个人信息时,发现是提交的get请求到后台

     我们直接把lucy换成其他人的

     发现,直接把其他人的信息查询出来啦

     查看下后台代码

     

    垂直越权                

    测试垂直越权怎么测呢???

    思路:1、用超级管理员账号去登录,对超级管理员独一无二的操作(比如新增账号),去执行

       2、把这个操作抓包,

       3、退出超级管理员登入状态,切换到普通管理员上

       4、把抓到的包,用普通管理员的身份进行一次重放。  若这个操作能成功,则说明存在垂直越权

    开始我们的实验:

    超级管理员和普通管理员的账号,点提示可以看到,

    1、用超级管理员登入,新增个账号的时候抓包

     2、抓包,发送给Repeater,并且发现这 超级管理员登录状态的cookie,

    放回发现并没有新增用户,按照我们的思路应该是加不成功的,因为我们的登入状态已经退出啦,事实也确实没有

    3、退出超级管理员登入状态,切换到普通管理员上,

     4、退出用户登录的状态,再重新发一下包,我们现在抓一下普通用户的cookie

    复制下来  Cookie: PHPSESSID=4tkdvdjghjm0um7g53q2l3d144

    5、把普通用户的登录cookie用到之前的超级管理员的包上,注意这里admin并没有登录

    6、我们发现用户界面已经完成了一个用户的创建

    这样用普通管理员去做超级管理员的操作就是垂直越权,但是比较鸡肋 因为现实很难抓到超级管理员的包。

    但在一些后台管理员系统中,有管理员,普通用户和业务人员等…  往往会出现垂直越权

  • 相关阅读:
    使用promise手动封装ajax函数
    node c++多线程插件构想
    node c++多线程插件 第一天 c++线程相关函数
    gps数据转百度地图坐标
    node.js异步控制流程 回调,事件,promise和async/await
    重回博客 谈一谈Node中的异步和单线程
    关于js模拟c#的Delegate(委托)实现
    基础知识 字符编码简介
    工作经历20130316
    Sql Server 学习1
  • 原文地址:https://www.cnblogs.com/escwq/p/12634891.html
Copyright © 2011-2022 走看看