1. 访问控制漏洞的本质与危害
访问控制(Access Control)是系统安全的核心防线,它决定了"谁能在什么情况下访问哪些资源"。当这条防线出现漏洞时,就会产生越权访问,攻击者能够突破权限边界访问本不该接触的数据或功能。根据突破权限维度的不同,主要分为两种类型:
垂直越权(Vertical Privilege Escalation)是指低权限用户获取高权限角色的能力。比如普通用户通过某种方式获得了管理员后台的操作权限,这种"纵向权限提升"往往导致严重后果。去年某电商平台就曾爆出漏洞,攻击者通过修改Cookie中的角色ID,就能以顾客身份直接进入商家管理界面。
水平越权(Horizontal Privilege Escalation)则是同级别用户之间的权限突破。例如在网银系统中,用户A通过篡改URL参数就能查看用户B的账户明细。虽然权限级别相同,但突破了"用户数据隔离"的基本安全原则。这类漏洞在社交平台、医疗系统中尤为危险。
关键区别:垂直越权跨越的是角色层级(如用户→管理员),水平越权突破的是数据边界(如用户A→用户B的数据)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 典型漏洞场景与攻击手法
2.1 垂直越权常见模式
案例1:隐藏功能未鉴权
某CMS系统的管理员后台存在/admin/export.php数据导出接口,开发人员误以为该路径已受全局中间件保护,实际上未做权限校验。攻击者直接访问该URL即可下载全站用户数据。
案例2:参数篡改提权
http复制POST /api/changeRole HTTP/1.1
{
"userId": 123,
"role": "admin" // 普通用户提交时将guest改为admin
}
后端未校验请求者是否有权修改角色,导致任意用户可自我提升为管理员。
防御要点:
- 实施"默认拒绝"原则,所有接口显式声明所需权限
- 关键操作(如角色变更)需二次认证(如短信验证)
- 管理员功能应使用独立子域名,避免路径猜测
2.2 水平越权高频漏洞
案例3:ID可预测/遍历
http复制GET /api/orders/10087 // 修改为10088即可查看他人订单
系统仅验证用户是否登录,未校验订单归属关系。
**案例4:关联数据泄露
