前言
在网络安全挖洞、护网行动、企业安全审计中,越权漏洞是出现频率最高、最容易被忽略、危害最直接的高危漏洞。
它不需要复杂的代码注入、不需要利用 0day,仅仅通过修改一个 ID、篡改一个参数,就能实现查看他人数据、操控他人账户、甚至直接拿到系统管理员权限。而且容易和业务漏洞结合,所以出现的概率很高。
对于安全开发工程师、渗透测试工程师、后端开发者而言,越权漏洞是必须吃透的基础核心漏洞。本文将从原理、分类、业务实战案例、挖掘手法、企业级防御、面试考点全维度拆解,完全贴合实战与面试需求。
一、越权漏洞核心基础
1. 漏洞本质
服务器未对当前用户的身份、权限做严格校验,仅依赖前端传递的参数(如用户 ID、订单 ID、文章 ID)判断操作权限,导致用户可以访问 / 操作不属于自己、不属于自身权限级别的资源。
2. 漏洞核心成因
- 后端仅校验是否登录,不校验数据归属
- 权限控制仅在前端实现,后端无鉴权
- 接口使用固定参数、 predictable(可预测)ID
- 微服务 / 分布式系统中,服务间调用缺失权限校验
- 旧系统迭代、业务代码冗余,遗留未加固接口
3. 两大核心分类(面试必问)
越权漏洞仅分为两类,是所有业务系统的重灾区:
- 水平越权(Horizontal Privilege Escalation)
- 垂直越权(Vertical Privilege Escalation)
二、水平越权
1. 核心原理
相同权限等级的用户,越权访问 / 操作另一个同权限用户的私有数据。用户身份级别不变,仅越权访问他人的私有资源。
2. 典型业务场景
- 用户中心:普通用户 A 查看 / 修改普通用户 B 的个人信息、手机号、身份证
- 电商系统:查看他人订单、收货地址、支付记录
- 办公系统:查看他人考勤、工资条、审批流程
- 社交平台:查看他人私信、未公开动态
- 金融系统:查看他人银行卡、交易流水
3. 实战案例
正常请求(用户 ID=1001,自己的信息)
GET /api/user/info?user_id=1001 HTTP/1.1
越权操作:仅修改user_id=1002,直接获取他人信息
GET /api/user/info?user_id=1002 HTTP/1.1
漏洞结果:普通用户无需任何提权,直接查看其他普通用户的隐私数据。
4. 漏洞危害
- 大批量泄露用户隐私数据(身份证、手机号、地址)
- 篡改他人账户信息、订单数据
- 企业合规风险(违反《网安法》《个人信息保护法》)
- 护网行动中直接判定为高危漏洞
三、垂直越权
1. 核心原理
低权限用户,绕过权限校验,访问 / 操作高权限角色(管理员)的资源。直接突破权限层级,实现权限提升,是最危险的越权类型。
2. 典型业务场景
- 普通用户 → 访问管理员后台
- 普通用户 → 新增 / 删除管理员账号
- 普通用户 → 修改系统配置、删除数据
- 普通用户 → 查看全量用户数据、日志
- 子账户 → 越权操作主账户功能
3. 实战案例
正常权限:仅管理员可调用漏洞请求:普通用户登录后,直接请求管理员接口
漏洞请求:普通用户登录后,直接请求管理员接口
漏洞结果:普通用户直接创建管理员账号,完全接管系统。
4. 漏洞危害
- 系统完全沦陷,攻击者获取最高管理权限
- 数据批量泄露、篡改、删除
- 后台被恶意控制,成为内网渗透入口
- 护网行动中直接定性为高危漏洞
五、越权漏洞实战挖掘手法
1. 水平越权挖掘步骤
- 登录两个普通用户账号(A、B)
- 抓取 A 的个人数据 / 订单请求包
- 修改参数:
user_id/order_id/id为 B 的 ID - 发送请求,若返回 B 的数据 → 存在水平越权
2. 垂直越权挖掘步骤
- 登录普通用户,抓取后台接口列表
- 直接请求管理员接口(
/admin/*、/api/admin/*) - 携带普通用户 Cookie,无需管理员权限
- 接口可正常访问 / 执行 → 存在垂直越权
3. 高频易出漏洞点
- 详情接口:
/info?id=1 - 编辑接口:
/edit?user_id=1 - 删除接口:
/delete?id=1 - 列表接口:
/list无权限过滤 - 后台管理:未做角色校验
六、企业级防御方案
1. 水平越权防御(校验数据归属)
- 后端绑定当前用户 ID禁止使用前端传递的
user_id,从 Session/Token 中获取当前登录用户 ID - 数据归属校验查询数据时,强制拼接
user_id = 当前登录用户ID
2. 垂直越权防御(校验角色权限)
- 基于角色的权限控制(RBAC)管理员接口必须校验角色:
admin/root - 使用安全框架SpringSecurity、Shiro 实现接口级权限拦截
- 接口白名单 / 黑名单管控后台接口仅允许管理员 IP / 角色访问
3. 通用加固规范
所有接口必须登录校验 + 权限校验双层验证
禁用前端传递的用户身份参数
敏感接口添加日志审计
护网 / 上线前做越权专项测试
七、AI 安全 / 网络安全面试高频考点
1. 什么是越权漏洞?分为哪两类?
答:越权漏洞是失效的访问控制,服务器未校验用户权限导致非法操作资源;分为水平越权(同权限访问他人数据)和垂直越权(低权限提权到管理员)。
2. 水平越权和垂直越权的核心区别?
答:水平越权权限等级不变,仅越权访问同权限用户数据;垂直越权权限提升,低权限用户操作管理员功能,危害更大。
3. 越权漏洞的防御方案?
答:后端双校验:
- 水平越权:校验数据归属,从 Token 获取用户 ID,禁止信任前端参数;
- 垂直越权:校验角色权限,使用 RBAC 权限框架,管理员接口强制鉴权。
4. 为什么前端无法防御越权漏洞?
答:前端限制可通过抓包、改包绕过,所有权限控制必须在后端实现,前端仅做展示作用。
八、总结
- 越权漏洞是 OWASP TOP1 第一漏洞,是护网、众测、企业审计的必查项,挖掘成本几乎为零;
- 水平越权靠改 ID,泄露隐私;垂直越权靠绕权限,接管系统;
- 防御核心:永远不要信任前端参数,后端必须做数据归属校验 + 角色权限校验;
- 对于开发者:权限控制是代码底线;对于安全工程师:越权是入门必挖、效率最高的漏洞类型。