详解越权漏洞

本文涉及的产品
访问控制,不限时长
简介: 1.1. 漏洞原理 越权漏洞是指应用程序未对当前用户操作的身份权限进行严格校验,导致用户可以操作超出自己管理权限范围的功能,从而操作一些非该用户可以操作的行为。 简单来说,就是攻击者可以做一些本来不该他们做的事情(增删改查) 。

[toc]

1.1. 漏洞原理

越权漏洞是指应用程序未对当前用户操作的身份权限进行严格校验,导致用户可以操作超出自己管理权限范围的功能,从而操作一些非该用户可以操作的行为。简单来说,就是攻击者可以做一些本来不该他们做的事情(增删改查)

IDOR

1.2. 漏洞分类

主要分为 水平越权垂直越权 两大类

1.2.1. 水平越权

发生在具有相同权限级别的用户之间。攻击者通过利用这些漏洞,访问其他用户拥有的资源或执行与其权限级别不符的操作。

1.2.2. 垂直越权

发生在具有多个权限级别的系统中。攻击者通过利用这些漏洞,从一个低权限级别跳转到一个更高的权限级别。例如,攻击者从普通用户身份成功跃迁为管理员。

1.3. 漏洞举例

1.3.1. 水平越权

假设一个在线论坛应用程序,每个用户都有一个唯一的用户ID,并且用户可以通过URL访问他们自己的帖子。应用程序的某个页面的URL结构如下:

https://example.com/forum/posts?userId=<用户ID>

应用程序使用userId参数来标识要显示的用户的帖子。假设Alice的用户ID为1,Bob的用户ID为2。

Alice可以通过以下URL访问她自己的帖子:

https://example.com/forum/posts?userId=1

现在,如果Bob意识到URL参数是可变的,他可能尝试修改URL参数来访问Alice的帖子。他将尝试将URL参数修改为Alice的用户ID(1):

https://example.com/forum/posts?userId=1

如果应用程序没有正确实施访问控制机制,没有验证用户的身份和权限,那么Bob将成功地通过URL参数访问到Alice的帖子。

1.3.2. 垂直越权

假设一个电子商务网站,有两种用户角色:普通用户和管理员。普通用户有限的权限,只能查看和购买商品,而管理员则拥有更高的权限,可以添加、编辑和删除商品。

在正常情况下,只有管理员可以访问和执行与商品管理相关的操作。然而,如果应用程序没有正确实施访问控制和权限验证,那么普通用户可能尝试利用垂直越权漏洞提升为管理员角色,并执行未经授权的操作。

例如,普通用户Alice可能意识到应用程序的URL结构如下:

https://example.com/admin/manage-products

她可能尝试手动修改URL,将自己的用户角色从普通用户更改为管理员,如下所示:

https://example.com/admin/manage-products?role=admin

如果应用程序没有进行足够的验证和授权检查,就会错误地将Alice的角色更改为管理员,从而使她能够访问和执行与商品管理相关的操作。

1.4. 漏洞危害

具体以实际越权的功能为主,大多危害如下:

  1. 数据泄露:攻击者可以通过越权访问敏感数据,如个人信息、财务数据或其他敏感业务数据。这可能导致违反隐私法规、信用卡信息泄露或个人身份盗用等问题。
  2. 权限提升:攻击者可能利用越权漏洞提升其权限级别,获得系统管理员或其他高权限用户的特权。这可能导致对整个系统的完全控制,并进行更广泛的恶意活动。

1.5. 修复建议

  1. 实施严格的访问控制:确保在应用程序的各个层面上实施适当的访问控制机制,包括身份验证、会话管理和授权策略。对用户进行适当的身份验证和授权,仅允许其执行其所需的操作。
  2. 验证用户输入:应该对所有用户输入进行严格的验证和过滤,以防止攻击者通过构造恶意输入来利用越权漏洞。特别是对于涉及访问控制的操作,必须仔细验证用户请求的合法性。
  3. 最小权限原则:在分配用户权限时,采用最小权限原则,即给予用户所需的最低权限级别,以限制潜在的越权行为。用户只应具备完成其任务所需的最小权限。
  4. 安全审计和监控:建立安全审计和监控机制,对系统中的访问活动进行监视和记录。这可以帮助检测和响应越权行为,并提供对事件的审计跟踪。
相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
分布式计算 安全 调度
PowerJob未授权访问漏洞(CVE-2023-29922)
PowerJob是一个开源分布式计算和作业调度框架,它允许开发人员在自己的应用程序中轻松调度任务。PowerJob V4.3.1版本存在安全漏洞,该漏洞源于存在不正确访问控制。
899 1
PowerJob未授权访问漏洞(CVE-2023-29922)
|
4月前
|
开发框架 安全 JavaScript
【漏洞复现】Nodebb 被爆未授权拒绝服务攻击
本文复现了旧版 Nodebb 存在的拒绝服务攻击漏洞,通过本案例提醒各位读者,赶紧升级 Nodebb 的版本,同时提高自身的安全意识,在自己编写代码时,一定要对变量进行校验以及强制类型转换,以防被绕过造成危害!
|
SQL 运维 安全
【WEB安全】详解信息泄漏漏洞
1.1. 漏洞介绍 由于网站管理员运维不当,可能会将备份文件、数据库配置文件等敏感文件存放在WEB目录下公开访问,攻击者可以轻松地访问这些敏感文件,从而了解系统的配置细节、密码信息、数据库凭据等重要数据,扩大的攻击面。 这种泄漏敏感信息的情况就属于信息泄漏漏洞。 1.2. 漏洞发现 主要以目录扫描为主,可参考 目录扫描 (https //blog.gm7.org/个人知识库/0
492 0
|
安全 JavaScript 前端开发
代码审计——未授权访问详解
代码审计——未授权访问详解
492 0
|
供应链 安全 IDE
BigBlueButton 授权不当漏洞(CVE-2022-29236)
BigBlueButton 授权不当漏洞(CVE-2022-29236)
BigBlueButton 授权不当漏洞(CVE-2022-29236)
|
供应链 安全 IDE
ToolJet 敏感信息泄露漏洞(CVE-2022-23067)
ToolJet 敏感信息泄露漏洞(CVE-2022-23067)
ToolJet 敏感信息泄露漏洞(CVE-2022-23067)
|
数据采集 安全 前端开发
|
SQL 开发框架 安全
ThinkPHP5 SQL注入漏洞 && 敏感信息泄露
ThinkPHP5 SQL注入漏洞 && 敏感信息泄露
664 0
ThinkPHP5 SQL注入漏洞 && 敏感信息泄露
|
编解码 安全 NoSQL
SSRE漏洞
服务器端请求伪造:是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。
SSRE漏洞
|
安全 前端开发 JavaScript
渗透测试 越权漏洞的检测与修复
渗透测试在网站,APP刚上线之前是一定要做的一项安全服务,提前检测网站,APP存在的漏洞以及安全隐患,避免在后期出现漏洞,给网站APP运营者带来重大经济损失,很多客户找到我们SINE安全公司做渗透测试服务的同时,我们积累了十多年的漏洞检测经验,对客户的网站各项功能以及APP进行全面的安全检测,下面我们就对渗透测试中的一些知识点跟大家科普一下:
685 0
渗透测试 越权漏洞的检测与修复