一、概述

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

二、水平越权

漏洞利用:

第一步:登陆之后可以看到自己的用户信息

第二步:url中有用户名的参数,我们可以改一下

这样,没有经过密码验证就查看了其他平级用户的信息,这是水平越权。

四、垂直越权

漏洞利用:

第一步:首先登录admin超级管理员用户,发现有管理用户的权限

第二步:添加一个用户

第三步:抓包,这是他新建的用户的数据包,并且有登录状态的cookie

第四步:退出用户登录的状态,再重新发一下包

发现没有新建的用户信息,这是正常的,因为超级管理员的登录cookie以及随着退出失效

第五步:我们现在抓一下普通用户的cookie

第六步:把普通用户的登录cookie用到之前的超级管理员的包上

注意这里admin并没有登录

第七步:我们发现用户界面已经完成了一个用户的创建

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

Pikachu-Over Permission模块的更多相关文章

  1. pikachu Over Permission

    Over Permission 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作. 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的. 一般越 ...

  2. 43.Permission源码解析和自定义权限类

    drf的权限类位于permission模块   如何确定权限 认证.限流,权限决定是否应该接收请求或拒绝访问 权限检查在视图的最开始处执行,在继续执行其他代码前 权限检查通常会使用request.us ...

  3. web安全浅析

    就之前本人主持开发的金融产品所遇到的安全问题,设计部分请参见:http://www.cnblogs.com/shenliang123/p/3835072.html 这里就部分web安全防护就简单的交流 ...

  4. java反射--注解的定义与运用以及权限拦截

    自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...

  5. 详解基于vue,vue-router, vuex以及addRoutes进行权限控制

    基于vuex, vue-router,vuex的权限控制教程,完整代码地址见https://github.com/linrunzheng/vue-permission-control 接下来让我们模拟 ...

  6. shiro:hasPermission 标签 :验证当前用户是否拥有指定权限

    1.这些值是存在数据库里的,在哪里找呢?sys_menu 中的permission列. <shiro:hasPermission name="cms:article:edit" ...

  7. java 注解annotation的使用,以及反射如何获取注解

     一.注解基本知识 1.元注解 元注解是指注解的注解.包括  @Retention @Target @Document @Inherited四种. 1. Annotation型定义为@interfac ...

  8. pikachu-跨站脚本漏洞(XSS)

    一.跨站脚本漏洞概述 1.1 什么是XSS漏洞?     XSS是一种发生在Web前端的漏洞,其危害的对象也主要是前端用户. 1.2 XSS如何攻击? 二.跨站脚本漏洞类型及测试流程 2.1 跨站脚本 ...

  9. pikachu-SQL注入漏洞

    一.SQL Inject 漏洞原理概述 1.1 什么是数据库注入漏洞     数据库注入漏洞,主要是开发人员在构建代码的时候,没有对用户输入的值的边界进行安全的考虑,导致攻击者可以通过合法的输入点提交 ...

随机推荐

  1. linux sort uniq命令详解

    sort 功能说明:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序. sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+&l ...

  2. linux下的压缩命令 tar zip gunzip

    p.p1 { margin: 0; font: 12px Arial; color: rgba(5, 42, 136, 1) } p.p2 { margin: 0; font: 12px " ...

  3. js代码 简单实现数字滚动增加动效(原)

    <html><body> <span>look this:</span><span id="nums">10000< ...

  4. so层反调试方法以及部分反反调试的方法

    1.检测ida远程调试所占的常用端口23946,是否被占用 //检测idaserver是否占用了23946端口 void CheckPort23946ByTcp() { FILE* pfile=NUL ...

  5. Java的反射机制一

    Java具有一定的动态性,我们可以利用反射机制,字节码操作来获得类似动态语言的特性. 动态操作对象,构造方法,属性,方法 Demo2 如何取得属性和方法以及构造器 public class Demo2 ...

  6. 【知识点】H264, H265硬件编解码基础及码流分析

    前言 音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大 ...

  7. SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!

    大家好,我是飘渺. 今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常. 首先我们来看看为什么要返回统一的标准格式? 为什么要对Sp ...

  8. 关于kong | API Gateway

    目录 为什么需要 API 网关(more) kong的概念 为什么使用Kong Kong 的管理方式 高可扩展性的背后-插件机制 [前言]: Kong是一个云原生,高效,可扩展的分布式 API 网关. ...

  9. Swift-使用transform 实现重复平移动画

    摘要 要实现一组重复的动画,本质上就是找到动画开始点.结束点.在动画结束的时候,触发开始点,持续这样的动作. 这里面要梳理的逻辑就是1.触发开始点和2.监听动画结束点.这两个逻辑是实现重复动画的基础. ...

  10. 家庭账本开发day04

    对之前的构架进行修改,对成员类新加属性余额,在进行账单的新增时 ,对余额进行相应的修改.并且对账单类加入属性:id方便之后的查询和 删除操作