Pikachu靶场-Over Permission
字数 1317 2025-08-24 20:49:22

Pikachu靶场-Over Permission 越权漏洞教学文档

1. 越权漏洞概述

越权漏洞(Over Permission)是指当用户A使用自己的权限去操作用户B的数据时,如果用户A的权限小于用户B的权限但操作仍能成功执行,则称为越权操作。

漏洞成因

  • 后台使用了不合理的权限校验规则
  • 权限校验规则过于简单或缺失

常见出现位置

  • 需要登录的权限页面
  • 增、删、改、查等操作功能点

权限管理最佳实践

  1. 最小权限原则:对用户只赋予完成其工作所需的最小权限
  2. 严格权限校验:实施合理且严格的权限校验规则
  3. 后台验证:使用后台登录态作为权限判断依据,避免依赖前端传入的条件

2. 水平越权(Horizontal Over Permission)

水平越权是指攻击者能够访问或操作与其权限级别相同的其他用户的资源。

实验演示

测试账户信息

  • lucy/123456
  • lili/123456

测试步骤

  1. 使用lucy账户登录
  2. 点击查看个人信息
  3. 观察URL参数username=lucy
  4. 将username参数修改为lili
  5. 成功查看到用户lili的信息,触发水平越权

漏洞分析

  • 系统仅通过前端传入的username参数判断用户身份
  • 缺乏对当前登录用户与请求用户关系的验证
  • 任何登录用户都可以通过修改username参数查看其他用户信息

3. 垂直越权(Vertical Over Permission)

垂直越权是指低权限用户能够执行高权限用户才能进行的操作。

实验演示

测试账户信息

  • admin/123456(管理员权限)
  • pikachu/000000(普通用户权限)

方法一:Cookie替换

测试步骤

  1. 登录admin账户,使用添加用户功能
  2. 抓取添加用户请求的数据包
  3. 登录pikachu账户,获取其cookie(如:bshi6ehg8coal73u4aeo9bpbj3)
  4. 将管理员数据包中的cookie替换为pikachu的cookie
  5. 修改添加用户的信息后发送请求
  6. 用户添加成功,触发垂直越权

方法二:URL直接访问

测试步骤

  1. 登录admin账户,进入添加用户页面
  2. 记录URL:/vul/overpermission/op2/op2_admin_edit.php
  3. 登录pikachu账户
  4. 直接访问上述记录的URL
  5. 发现pikachu用户也可以添加用户
  6. 添加用户后验证admin账户,确认添加成功

漏洞分析

  • 系统仅通过URL路径判断功能权限
  • 缺乏对当前用户角色和权限的验证
  • 任何登录用户只要知道管理功能的URL就可以直接访问

4. 防御措施

针对水平越权

  1. 实施严格的用户数据所有权验证
  2. 对用户访问的数据进行所属关系检查
  3. 使用会话中的用户ID而非前端传入的参数

针对垂直越权

  1. 基于角色的访问控制(RBAC)
  2. 对敏感操作进行权限检查
  3. 服务器端验证用户权限而非依赖前端控制
  4. 对管理功能实施二次认证

5. 总结

越权漏洞是Web应用中常见的高危漏洞,分为水平越权和垂直越权两种类型。防御越权漏洞的关键在于实施严格的权限验证机制,遵循最小权限原则,并在服务器端进行充分的权限检查,而非依赖前端传入的参数或简单的URL访问控制。

Pikachu靶场-Over Permission 越权漏洞教学文档 1. 越权漏洞概述 越权漏洞(Over Permission)是指当用户A使用自己的权限去操作用户B的数据时,如果用户A的权限小于用户B的权限但操作仍能成功执行,则称为越权操作。 漏洞成因 后台使用了不合理的权限校验规则 权限校验规则过于简单或缺失 常见出现位置 需要登录的权限页面 增、删、改、查等操作功能点 权限管理最佳实践 最小权限原则 :对用户只赋予完成其工作所需的最小权限 严格权限校验 :实施合理且严格的权限校验规则 后台验证 :使用后台登录态作为权限判断依据,避免依赖前端传入的条件 2. 水平越权(Horizontal Over Permission) 水平越权是指攻击者能够访问或操作与其权限级别相同的其他用户的资源。 实验演示 测试账户信息 : lucy/123456 lili/123456 测试步骤 : 使用lucy账户登录 点击查看个人信息 观察URL参数 username=lucy 将username参数修改为 lili 成功查看到用户lili的信息,触发水平越权 漏洞分析 系统仅通过前端传入的username参数判断用户身份 缺乏对当前登录用户与请求用户关系的验证 任何登录用户都可以通过修改username参数查看其他用户信息 3. 垂直越权(Vertical Over Permission) 垂直越权是指低权限用户能够执行高权限用户才能进行的操作。 实验演示 测试账户信息 : admin/123456(管理员权限) pikachu/000000(普通用户权限) 方法一:Cookie替换 测试步骤 : 登录admin账户,使用添加用户功能 抓取添加用户请求的数据包 登录pikachu账户,获取其cookie(如:bshi6ehg8coal73u4aeo9bpbj3) 将管理员数据包中的cookie替换为pikachu的cookie 修改添加用户的信息后发送请求 用户添加成功,触发垂直越权 方法二:URL直接访问 测试步骤 : 登录admin账户,进入添加用户页面 记录URL: /vul/overpermission/op2/op2_admin_edit.php 登录pikachu账户 直接访问上述记录的URL 发现pikachu用户也可以添加用户 添加用户后验证admin账户,确认添加成功 漏洞分析 系统仅通过URL路径判断功能权限 缺乏对当前用户角色和权限的验证 任何登录用户只要知道管理功能的URL就可以直接访问 4. 防御措施 针对水平越权 实施严格的用户数据所有权验证 对用户访问的数据进行所属关系检查 使用会话中的用户ID而非前端传入的参数 针对垂直越权 基于角色的访问控制(RBAC) 对敏感操作进行权限检查 服务器端验证用户权限而非依赖前端控制 对管理功能实施二次认证 5. 总结 越权漏洞是Web应用中常见的高危漏洞,分为水平越权和垂直越权两种类型。防御越权漏洞的关键在于实施严格的权限验证机制,遵循最小权限原则,并在服务器端进行充分的权限检查,而非依赖前端传入的参数或简单的URL访问控制。