• pikachu-Over permission(越权漏洞)


    概述

    如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。 因此,在在权限管理中应该遵守:
    1.使用最小权限原则对用户进行赋权;
    2.使用合理(严格)的权限校验规则;
    3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

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

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

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

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

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

    平行越权

    打开pikachu的平行越权,登入用户,点击查看个人信息,页面显示了个人信息

     当我们点击查看个人信息时,页面其实是发送了一个get请求将当前的用户名传到后台,后台再将个人信息传输到前端显示

     接着我们将url里的用户名修改成其他用户,就跳出来其他的用户个人信息,这是一个典型的越权漏洞

     

     我们查看后端代码,通过代码可以看到后台通过get请求获取到前端传过来的参数后并没有进行严谨的权限校验,使得用户可以越权获取别的用户的个人信息。

     垂直越权

    打开pikachu中的垂直越权,登入超级管理员账号

    然后我们随便添加一个用户,然后我们可以看到新用户成功被添加。

     然后我们用burp抓取一下,添加用户操作的数据包,发送repeater中去。

     接着我们将pikachu里的超级管理员退出登录,这个时候管理员是处于离线状态,管理员操作应该是不会被执行的,我们到burp中将我们抓取到的管理员添加用户的操作数据包重放一次,

    点GO重放,再重定向

     重定向到了登入页面

     我们接着再在pikachu中登入超级管理员账号,可以发现用户列表没有变化,只是正常现象

     接着我们退出登入,再登入一个普通管理员用户

     然后我们刷新页面,用burp获取页面的登入态,复制当前用户的登入态的cookie

     接着我们在回到之前超级管理员添加用户操作的数据包,发送到repeaster,将登入态换成我们之前复制的普通管理员的cookie

     点击GO重放,然后回到pikachu页面点击刷新,可以看到新用户被成功添加,说明存在着一个垂直越权漏洞,也就是说我们可以通过普通用户去进行超级管理员的操作。

    接着查看后台代码,首先查看登陆页面的源代码,它会去判断输入的账户是否为管理员,如果是则进入管理员页面,否则就进入普通用户页面

     

     添加用户的源代码中,登录态只是通过$_SESSION去取到账户和密码,只是去判断当前的用户有没有登陆,但没有去验证当前用户的权限

  • 相关阅读:
    判断整除(动态规划,递推)
    Apollo 配置详细步骤(Windows环境)
    java的环境变量
    我的C++学习心得
    Maven实战_许晓斌
    深入理解计算机系统--中文版
    http 权威指南 -- http the definitive guide
    看原版英文和译版中文
    python 单元测试框架 pyunit
    在SQL Server 中创建外键
  • 原文地址:https://www.cnblogs.com/DxyG/p/13662186.html
Copyright © 2020-2023  润新知