记一次和厂家相爱相杀
字数 1073 2025-08-06 08:35:27

权限绕过与接口安全漏洞实战分析

漏洞背景

本文记录了一次针对某教育系统的渗透测试过程,涉及多次权限绕过和接口安全漏洞的发现与利用。攻击者通过多种技术手段成功绕过系统防护,获取管理员权限并发现SSRF漏洞。

初始信息收集

  1. 初始访问:通过学生账户(来源:女朋友提供)直接登录系统
  2. 目标识别:使用FOFA搜索引擎收集到4个相关站点
  3. 测试方法:由于未扫描到备份文件,采用黑盒测试方法

第一次权限绕过

漏洞发现

  1. 发现一个接口泄露用户信息
  2. 正常用户返回的角色标识参数为SYS004
  3. 通过社工获取到管理员参数为SO1SYS001

漏洞利用

  1. 修改登录参数中的角色标识为管理员参数
    • SYS004改为SYS001SO1
  2. 成功以管理员权限登录后台

后续发现

  1. 在后台发现一处SSRF漏洞:
    http://xxxxxxx/api/xxxxx?path=dnslog
    

第二次权限绕过(厂家第一次修复后)

厂家修复措施

  1. 增加了管理员JWT验证
  2. 之前的方法无法进入后台

绕过方法

  1. 直接抓包分析
  2. 发现并利用另一处暴露的账户和密码
  3. 成功再次绕过防护

第三次权限绕过(应校方和厂家要求测试)

厂家修复方案

  1. 增加登录者身份关系校验

绕过方法

  1. 发现直接使用之前方法会返回302跳转
  2. 使用空值绕过:
    • 构造特殊请求参数:
      userId=1&menuRole=SYS004&roleNo=SYS004&cal=381&rm=
      
    • 关键点:将rm参数设置为空
  3. 成功绕过身份校验,正常返回数据

漏洞总结

主要漏洞类型

  1. 不安全的直接对象引用(IDOR)
    • 通过修改角色参数直接提升权限
  2. 身份验证绕过
    • 空参数绕过身份校验
    • JWT验证绕过
  3. 敏感信息泄露
    • 接口返回过多用户信息
    • 暴露管理员账户参数
  4. SSRF漏洞
    • 通过path参数实现服务器端请求伪造

修复建议

  1. 权限控制

    • 实施严格的角色校验机制
    • 服务端验证用户权限,而非依赖客户端参数
    • 实现最小权限原则
  2. 输入验证

    • 对所有输入参数进行严格验证
    • 处理空值、特殊字符等异常情况
    • 实施白名单机制
  3. 会话管理

    • 加强JWT实现的安全性
    • 使用短期有效的令牌
    • 实现令牌吊销机制
  4. 敏感信息保护

    • 避免在接口中返回不必要的信息
    • 对管理员账户信息进行严格保护
    • 实现多因素认证
  5. 日志监控

    • 记录所有权限变更操作
    • 监控异常登录行为
    • 设置敏感操作告警

渗透测试方法论

  1. 信息收集阶段

    • 利用已有账户进行初步测试
    • 使用FOFA等工具扩大攻击面
  2. 接口测试方法

    • 参数篡改测试
    • 空值/异常值测试
    • 枚举已知标识符
  3. 权限提升策略

    • 分析角色标识体系
    • 尝试参数组合
    • 利用信息泄露
  4. 绕过修复措施

    • 分析302跳转行为
    • 测试参数边界情况
    • 保持对系统变更的敏感度

本案例展示了即使系统经过多次修复,仍可能存在新的绕过方式,强调了安全防护需要多层次、多角度的防御策略。

权限绕过与接口安全漏洞实战分析 漏洞背景 本文记录了一次针对某教育系统的渗透测试过程,涉及多次权限绕过和接口安全漏洞的发现与利用。攻击者通过多种技术手段成功绕过系统防护,获取管理员权限并发现SSRF漏洞。 初始信息收集 初始访问 :通过学生账户(来源:女朋友提供)直接登录系统 目标识别 :使用FOFA搜索引擎收集到4个相关站点 测试方法 :由于未扫描到备份文件,采用黑盒测试方法 第一次权限绕过 漏洞发现 发现一个接口泄露用户信息 正常用户返回的角色标识参数为 SYS004 通过社工获取到管理员参数为 SO1 和 SYS001 漏洞利用 修改登录参数中的角色标识为管理员参数 将 SYS004 改为 SYS001 或 SO1 成功以管理员权限登录后台 后续发现 在后台发现一处SSRF漏洞: 第二次权限绕过(厂家第一次修复后) 厂家修复措施 增加了管理员JWT验证 之前的方法无法进入后台 绕过方法 直接抓包分析 发现并利用另一处暴露的账户和密码 成功再次绕过防护 第三次权限绕过(应校方和厂家要求测试) 厂家修复方案 增加登录者身份关系校验 绕过方法 发现直接使用之前方法会返回302跳转 使用空值绕过: 构造特殊请求参数: 关键点:将 rm 参数设置为空 成功绕过身份校验,正常返回数据 漏洞总结 主要漏洞类型 不安全的直接对象引用(IDOR) 通过修改角色参数直接提升权限 身份验证绕过 空参数绕过身份校验 JWT验证绕过 敏感信息泄露 接口返回过多用户信息 暴露管理员账户参数 SSRF漏洞 通过path参数实现服务器端请求伪造 修复建议 权限控制 实施严格的角色校验机制 服务端验证用户权限,而非依赖客户端参数 实现最小权限原则 输入验证 对所有输入参数进行严格验证 处理空值、特殊字符等异常情况 实施白名单机制 会话管理 加强JWT实现的安全性 使用短期有效的令牌 实现令牌吊销机制 敏感信息保护 避免在接口中返回不必要的信息 对管理员账户信息进行严格保护 实现多因素认证 日志监控 记录所有权限变更操作 监控异常登录行为 设置敏感操作告警 渗透测试方法论 信息收集阶段 利用已有账户进行初步测试 使用FOFA等工具扩大攻击面 接口测试方法 参数篡改测试 空值/异常值测试 枚举已知标识符 权限提升策略 分析角色标识体系 尝试参数组合 利用信息泄露 绕过修复措施 分析302跳转行为 测试参数边界情况 保持对系统变更的敏感度 本案例展示了即使系统经过多次修复,仍可能存在新的绕过方式,强调了安全防护需要多层次、多角度的防御策略。