zoukankan      html  css  js  c++  java
  • 越权漏洞

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

    我们可以看到点击提交会得到一个get请求
    http://127.0.0.1:89/pikachu/vul/overpermission/op1/op1_mem.php?username=lucy&submit=点击查看个人信息
    分析get请求可以发现相当于我们把当前的用户名提交给后台后台把对应的信息返回回来了。
    我们可以将URL中修改username后的值后提交,获取到用户的个人信息,比如将Lucy改为Kobe

    我们查看他的后台代码:产生漏洞的原因是后台通过get请求获取到当前登录态的值后并没有进行严谨的校验权限对比,使得用户可以越权获取别的用户的个人信息。
    解决这个问题我们需要后台添加一个验证,就是当我们提交用户名给后台,后台需要验证当前用户名与提交用户名是否相同。相同才返回结果给前台。

    三.垂直越权
    1.我们首先用超级管理员登录:admin 123456

    击添加用户,输入用户的信息后,点击创建

    创建成功后,打开burp suite,把抓取到的post请求的包发送到Repeater

    在Repeater中,点击Go后,可以看到显示的信息是和pikachu页面是一样的

    接下来回到pikachu页面,点击退出登录,在bp中点击Go后再点击Follow redirection(跟随重定向),可以看到bp显示的是和pikachu页面一样的画面,因为重定向之后,后台检测到当前登陆态已经退出登录

    在pikachu页面中登陆普通用户的账户,可以看到普通管理员只有查看权限,并没有添加或者修改用户权限

    uploading-image-268846.png
    接下来打开burp suite,获取普通用户登陆后的get请求,把get请求获取到的cookie复制下来
    Cookie: PHPSESSID=rk8r3magr6d9sdd89g9q27kcng


    接下来返回到pikachu页面,点击刷新,可以看到多出了一个用户,说明存在着一个垂直越权漏洞,也就是说我们可以通过普通用户去进行超级管理员的操作。
    我们看一下登录后的代码:它会去判断输入的账户是否为管理员,如果是则进入管理员页面,否则就进入普通用户页面

    看添加用户的源代码,只是对当前用户是否登录进行判断,没有判断登录用户是否有没有当前请求的权限,这样就构成垂直越权漏洞。
    解决也是在这里添加一个判断,判断前端用户是否有当前请求的权限。

  • 相关阅读:
    THUSC2021游记
    CF补题计划
    2020 Petrozavodsk Winter Camp Day5 简要题解
    很“炸”的安卓UI自动化工具
    SQL-关联查询
    MeterSphere接口自动化平台的使用
    Android开发Handler是如何确保UI刷新优先执行的源码解读
    android开发BadTokenException: Unable to add window -- token null is not valid; is your activity running?比较好的解决方法
    Android开发判断是否为鸿蒙系统
    Android性能优化使用自带的Profiler功能分析traceView文件
  • 原文地址:https://www.cnblogs.com/ruoxi/p/13593840.html
Copyright © 2011-2022 走看看