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

2024-09-06 15:20

本文主要是介绍【渗透测试专栏】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为自定义的错误页面。

这篇关于【渗透测试专栏】1.2认证和授权类-越权访问(水平/垂直越权)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142378

相关文章

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题