【渗透测试专栏】1.2认证和授权类-越权访问(水平/垂直越权)

该系列专栏旨在让漏洞检测变得更简单,只用于学习用途

靶机环境请看专栏前言专栏前言-WooYun漏洞库环境搭建-CSDN博客

目录

该系列专栏旨在让漏洞检测变得更简单,只用于学习用途

一、漏洞描述

1、水平越权

2、垂直越权

二、漏洞级别

三、漏洞检测方法

漏洞修复


一、漏洞描述

偏业务漏洞

1、水平越权

水平越权指的是在同一权限级别下,用户可以访问其他用户的资源或执行其他用户的操作。例如,在一个在线购物系统中,用户 A 和用户 B 都是普通用户,他们应该只能访问自己的订单信息、个人资料等。但如果存在水平越权漏洞,用户 A 可能能够访问用户 B 的订单信息,或者修改用户 B 的个人资料。

产生水平越权的原因通常是系统在进行权限校验时不够严格,没有正确地识别用户的身份和权限范围。比如,仅仅依靠用户的 ID 来确定资源的访问权限,而没有对用户的角色或其他标识进行充分的验证。

2、垂直越权

垂直越权则是低权限的用户能够访问高权限用户的资源或执行高权限的操作。例如,在一个企业管理系统中,普通员工通常只能查看自己的工作任务和提交工作报告。而管理员则可以管理用户账号、审批重要文件等。如果存在垂直越权漏洞,普通员工可能能够执行管理员的操作,如删除用户账号或修改系统设置。

垂直越权的出现可能是由于系统在权限管理的层次划分上不清晰,或者在权限校验的过程中存在漏洞。比如,没有对用户的权限进行严格的分层管理,或者在某些关键操作的权限校验中没有考虑到用户的实际权限级别。

越权访问漏洞可能会导致严重的安全问题,如用户隐私泄露、数据被篡改、系统被恶意控制等。为了防止越权访问漏洞的出现,开发人员应该在系统设计和开发过程中,采用严格的权限管理机制,对用户的身份和权限进行充分的验证和授权,确保用户只能访问和操作自己有权限的资源。

二、漏洞级别

高危

三、漏洞检测方法

1、  以超管 admin(高权限用户) 身份登录系统

2、  找到一个只有超管(高权限)才有的功能的链接,比如说:"http://localhost/mywebappname/userManage/userList.do" , 显示出所有的user,并复制此链接.

3、  以普通用户登陆进系统,在地址栏输入: userManage/userList.do ,如果可以查看到其所有的user,则就造成了,普通用户的越权访问

漏洞修复

对用户操作进行权限校验,防止通过修改参数进入未授权页面及进行非法操作,建议在服务端对请求的数据和当前用户身份做一个校验检查。

流程描述:在服务器接收到用户发送的页面访问请求时,根据预设的识别策略,从用户的页面访问请求中提取该用户对应的用户唯一标识信息,同时提取所述页面访问请求对应的应答页面中的表单及该表单中不可修改参数,将所述表单及不可修改参数与所述用户唯一标识信息绑定后记录到参数列表中;检测到用户提交请求页面的表单时,将所述请求页面的表单及不可修改参数与该用户对应的所述参数列表中记录的表单及不可修改参数进行比对,控制该用户的访问。

例如:
登陆时将用户名存入session
session.setAttribute("username",username);
在相关页面判断
if((String)session.getAttribute("username")!=admin){
(response.sendRedirect("XXX.jsp")};
注意: xxx.jsp为自定义的错误页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch 创建数据集

图片数据和标签数据准备 1.本文所用图片数据在同级文件夹中 ,文件路径为train/’ 2.标签数据在同级文件,文件路径为train.csv 3。将标签数据提取 train_csvpd.read_csv(train.csv)创建继承类 第一步,首先创建数据类对象 此时可以想象为单个数据单元的…

信创实践(3):基于x2openEuler将CentOS升级成openEuler,享受其带来的创新和安全特性

引言: 在当前的 IT 行业中,创新和安全性是两大关键趋势。随着 CentOS 停止维护,许多用户正在寻找替代方案,以保持其系统的更新和安全。openEuler 作为一个强大的开源操作系统,成为了理想的迁移目标。本教程将指导您如…

Java线程池的优化策略与最佳实践

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…

LiveQing视频点播流媒体RTMP推流服务功能-支持大疆等无人机RTMP推流支持OBS推流一步一步搭建RTMP视频流媒体服务示例

LiveQing支持大疆等无人机RTMP推流支持OBS推流一步一步搭建RTMP视频流媒体服务示例 1、流媒体服务搭建2、推流工具准备3、创建鉴权直播间4、获取推流地址5、配置OBS推流6、推流及播放7、获取播放地址7.1 页面查看视频源地址7.2 接口查询 8、相关问题8.1、大疆无人机推流花屏 9、…

感知机模型

一、概述 感知机模型(Perceptron Model)也叫做神经元模型,设计灵感即来自于生物神经元的运行机制,依次完成信息接收、处理、输出的过程。当前大放异彩的各种人工神经网络模型即由一个个人工神经元构成,因此,本文介绍的感知机模型&…

【Python123题库】#2019慈善排行 #酒店评价数据分析

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/140087686 参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 2019慈善排行酒店评价数据分析 2019慈善排行 描…

Hugging Face Offline Mode 离线模式

Hugging Face Offline Mode 离线模式 1. 缓存管理2. 遥测日志 在使用 Hugging Face 的库时,缓存和遥测日志是两个重要的功能。本文将介绍如何管理缓存、启用离线模式以及如何关闭遥测日志。 1. 缓存管理 在使用 Hugging Face 模型时,权重和文件通常会从…

详解 MQ 消息队列

谈起消息队列,内心还是会有些波澜。 消息队列,缓存,分库分表是高并发解决方案三剑客,而消息队列是我最喜欢,也是思考最多的技术。 我想按照下面的四个阶段分享我与消息队列的故事,同时也是对我技术成长经…

使用Fign进行客户端远程调用和SpringFormEncoder的使用

1、引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 2、启动类加上注解 EnableFeignClients SpringBootApplication public class FeignTe…

0成本实现.NET Web API 8.0项目内网映射

1.背景 最近在学习CICD&#xff0c;里面会有用到内网映射的使用场景。为了加深对内网映射实操的记忆。我实操了下基于.Net 8.0的内网映射&#xff0c;并支持互联网访问。本文主要介绍了在win11下安装路由侠&#xff0c;并将.net 8.0发布到win11&#xff0c;项目运行、路由侠配…

vue基于sockjs-client+stompjs实现websocket客户端

在之前的一欸文章中&#xff0c;介绍了好几种前端实现websocket客户端与服务端通信的方式。本章主要采用的是socketjs的方式。 SockJS 是一个浏览器 JavaScript 库&#xff0c;提供类似 WebSocket 的对象。它为浏览器提供了紧密遵循 HTML5 WebSockets API 的 JavaScript API&am…

【学习笔记】5G-A时代物联网应用及策略研究

摘要 海量物联网通信是5G典型应用场景之一&#xff0c;为了实现蜂窝网的全场景物联能力&#xff0c;需要更多的场景化技术&#xff0c;5G-A引入了RedCap&#xff08;5G Reduced Capability&#xff09;和Passive IoT。其中&#xff0c;RedCap降低了设备复杂性及成本&#xff0…

mybatis @Param 注解

在 MyBatis 中&#xff0c;Param 注解用于将方法参数绑定到 SQL 查询语句中的参数上。具体来说&#xff0c;当你在 Mapper 接口中定义方法时&#xff0c;Param 注解可以帮助你指定参数的名称&#xff0c;以便在 SQL 映射文件中使用这些名称。 使用 Param 注解的原因 当你在 M…

weblogic漏洞——CVE-2020-14882

一、基本信息 靶机&#xff1a;IP&#xff1a;192.168.100.40 二、攻击过程 进入 vulhub 靶场相关目录&#xff0c;并启动环境 cd master/weblogic/CVE-2020-14882 docker-compose up -d 绕过登录验证 http://192.168.100.40:7001/console/css/%252e%252e%252fconsole.por…

自己设计的QT系统,留个档

注册登录 主界面展示 天气预报 音乐播放

Guitar Pro 8.2.1 Build 32+Soundbanks Win/Mac音色库 开心激活版 音乐软件Guitar Pro 8中文破解版

音乐软件Guitar Pro 8中文破解版是一个受吉他手喜爱的吉他和弦、六线谱、BASS 四线谱绘制、打印、查看、试听软件&#xff0c;它也是一款优秀的 MIDI 音序器&#xff0c;MIDI 制作辅助工具&#xff0c;可以输出标准格式的 MIDI。GP 的过人之处就在于它可以直接用鼠标和键盘按标…

echarts多个环形图

echarts图表集 var dataValue [{name:今日待分配方量,value:49}, {name:今日已分配方量,value:602}, {name:今日完成方量,value:1037}]var piedata1 [{name: 1#拌和机,value: 20},{name: 2#拌和机,value: 22},{name: 3#拌和机 ,value: 17},{name: 4#拌和机,value: 18},{name…

Python 判断当前时间是否在9:30-11:30

哈喽,大家好,我是木头左! 获取当前时间 需要使用Python的datetime模块来获取当前的日期和时间。datetime模块提供了datetime类,该类表示一个具体的日期和时间。可以使用datetime.now()函数来获取当前的日期和时间。 import datetimecurrent_time = datetime.datetime.now…

二、搭建网站服务器超详细步骤——部署轻量应用服务器(Centos)

前言 经过第一篇博客的铺垫&#xff0c;现在小伙伴们已经选择了合适的服务器和域名&#xff0c;那么这篇博客就要详细的讲解&#xff0c;如何部署轻量应用服务器&#xff0c;为什么要选择Linux系统&#xff1f;为什么要选择CentOS作为系统镜像&#xff1f; 一、轻量应用服务器…

PCI Express 体系结构导读摘录(二)

系列文章目录 PCI Express 体系结构导读摘录&#xff08;一&#xff09; PCI Express 体系结构导读摘录&#xff08;二&#xff09; 文章目录 系列文章目录第Ⅱ篇  PCI Express 体系结构概述第 4 章  PCIe 总线概述4. 1  PCIe 总线的基础知识4. 1. 1  端到端的数据传递4. 1…