WEB安全梳理:访问控制漏洞

_


一、什么是访问控制漏洞?

访问控制(Access Control)用于限制用户“能访问什么资源、能执行什么操作”。

当系统没有正确校验用户身份与权限时,就会产生:

  • 越权访问

  • 未授权操作

  • 数据泄露

  • 管理员功能被普通用户调用

这是 Web 系统中最常见、危害最大的漏洞之一。 (CN-SEC)


二、访问控制漏洞分类

1. 水平越权(Horizontal Privilege Escalation)

定义

同等级用户之间互相访问数据。

例如:

  • 用户A修改用户B资料

  • 查看他人订单

  • 下载他人文件


示例流程图

用户A登录
   │
   ▼
GET /user/info?id=1002
   │
修改为
   ▼
GET /user/info?id=1003
   │
   ▼
成功查看用户B数据

配图

┌──────────┐
│ 用户A    │
└────┬─────┘
     │ 修改ID
     ▼
┌──────────┐
│ 用户B数据 │
└──────────┘

常见原因

  • 只校验是否登录

  • 未校验资源归属

  • 直接信任前端参数


修复方案

  • 服务端校验用户身份

  • 每次操作验证资源 owner

  • 不使用可预测ID


三、垂直越权(Vertical Privilege Escalation)

定义

低权限用户访问高权限功能。

例如:

  • 普通用户进入后台

  • 调用管理员接口

  • 删除系统数据


示例

/admin/deleteUser?id=1

普通用户直接访问后台接口。


配图

普通用户
    │
    ▼
管理员接口
    │
    ▼
执行成功

常见原因

  • 后台仅前端隐藏

  • URL未做权限验证

  • JWT角色字段可伪造


修复方案

  • RBAC权限模型

  • 服务端统一鉴权

  • 后端校验角色


四、未授权访问

定义

接口完全没有鉴权。

任何人都能直接访问。


示例

/api/getAllUser

无需登录即可获取数据。


风险

  • 数据泄露

  • 用户信息外泄

  • 后台暴露


配图

未登录用户
      │
      ▼
   API接口
      │
      ▼
 返回敏感数据

五、目录遍历导致的访问控制问题

示例

/download?file=../../etc/passwd

攻击者访问系统敏感文件。


配图

Web目录
   │
../../
   │
   ▼
系统敏感文件

修复

  • 限制文件目录

  • 过滤 ../

  • 白名单路径


六、常见访问控制漏洞场景

场景

漏洞

用户中心

水平越权

后台系统

垂直越权

文件下载

任意文件访问

API接口

未授权访问

OSS对象存储

公共读写

JWT认证

权限伪造


七、漏洞检测方法

1. 抓包修改ID

使用:

  • BurpSuite

  • 浏览器开发者工具

测试:

id=1001
改为
id=1002

2. 删除Token测试

Authorization:

看接口是否还能访问。


3. 切换普通用户账号

验证:

  • 是否能调用管理员接口

  • 是否能查看他人数据


八、实际危害

访问控制漏洞往往比 SQL 注入更危险。

因为:

  • 直接导致数据泄露

  • 可获取后台权限

  • 影响所有用户

  • 经常被忽视

大量真实攻击案例都来源于“越权”。


九、推荐安全方案

推荐权限架构

用户请求
   │
   ▼
认证(Authentication)
   │
   ▼
权限校验(Authorization)
   │
   ▼
资源访问

最佳实践

1. 后端强制鉴权

不要相信前端。


2. 最小权限原则

普通用户只给最少权限。


3. RBAC模型

角色:

  • admin

  • editor

  • user

不同角色不同权限。


4. 统一权限中间件

避免遗漏接口。


十、总结

访问控制漏洞本质:

“用户做了本不该做的事”

核心问题:

  • 没验证身份

  • 没验证权限

  • 没验证资源归属

重点关注:

  • 水平越权

  • 垂直越权

  • 未授权访问


学习路线建议

建议配合学习:

  1. HTTP协议

  2. Session/JWT

  3. OAuth

  4. RBAC权限模型

  5. API安全

  6. BurpSuite越权测试

相关系列文章:

NGINX CVE-2026-42945漏洞遭野外利用,导致工作进程崩溃及潜在RCE风险 2026-05-18

评论区