记某src通过越权拿下高危漏洞
字数 1064 2025-08-23 18:31:34

越权漏洞挖掘实战教学:通过参数构造获取用户敏感信息

漏洞概述

本教学文档详细分析了一个社区网站中存在的越权漏洞,攻击者可以通过构造特定API接口参数,获取其他用户的敏感信息(包括用户名、加密密码、邮箱、电话和IP地址等)。该漏洞属于典型的水平越权漏洞,最终被评定为高危漏洞。

漏洞发现过程

1. 初始接口发现

在登录网站后,通过抓包分析发现关键API接口:

/gateway/nuims/nuims?Action=GetUser

该接口返回当前登录用户的敏感信息:

  • 用户名(UserName)
  • 加密后的密码(Password)
  • 绑定的邮箱信息
  • 绑定的电话信息
  • 用户IP地址

2. 初步越权尝试

初始请求为GET方法,可见参数只有Version

/gateway/nuims/nuims?Action=GetUser&Version=2020-06-01

尝试修改Version参数无效果,无法直接实现越权。

3. 参数构造突破

通过分析网站权限校验机制,推测可能基于userId进行校验。构造新参数:

/gateway/nuims/nuims?Action=GetUser&Version=2020-06-01&UserId=xxxxxxxxxxxxx

成功实现越权,可查看任意用户的个人信息。

4. 第二个越权接口发现

通过插件findsomething发现第二个类似接口:

/gw/nuims/api/v1/nuims/LcpGetUser

使用相同参数构造方法,同样存在越权漏洞。

关键突破点

1. UserId参数获取

初始漏洞存在一个限制:需要知道其他用户的userId才能实现越权。通过以下方式获取:

  1. 分析论坛界面数据包
  2. 发现communityUserId参数值与userId相同
  3. 通过点击不同帖子,获取不同作者的communityUserId
  4. 将这些值作为userId参数使用

2. 参数遍历可能性

虽然userId本身不可遍历,但通过论坛公开信息可以获取大量用户的ID,使得漏洞危害性大幅提升。

漏洞利用流程总结

  1. 发现敏感接口:通过常规浏览或抓包找到返回用户敏感信息的API
  2. 参数分析:检查请求参数,寻找可能的权限控制参数(如userId)
  3. 参数构造:尝试添加或修改权限控制参数
  4. ID收集:从网站其他功能点收集有效用户ID
  5. 批量获取:使用收集的ID构造请求,获取多用户信息

防御建议

  1. 权限校验:所有涉及用户数据的接口必须进行严格的权限校验
  2. 敏感信息保护:避免在接口中返回不必要的敏感信息(如加密密码)
  3. 参数过滤:对传入的用户ID进行有效性验证和权限检查
  4. 接口设计:避免使用可预测的用户标识符
  5. 日志监控:对异常的大量用户信息查询进行监控

报告要点

在提交漏洞报告时,需要包含:

  1. 漏洞详细复现步骤
  2. 两个存在问题的API接口
  3. 获取其他用户ID的方法
  4. 漏洞的实际危害证明
  5. 清晰的修复建议

通过这种系统的测试方法,不仅提高了漏洞被认可的概率,也确保了漏洞的高危评级。

越权漏洞挖掘实战教学:通过参数构造获取用户敏感信息 漏洞概述 本教学文档详细分析了一个社区网站中存在的越权漏洞,攻击者可以通过构造特定API接口参数,获取其他用户的敏感信息(包括用户名、加密密码、邮箱、电话和IP地址等)。该漏洞属于典型的水平越权漏洞,最终被评定为高危漏洞。 漏洞发现过程 1. 初始接口发现 在登录网站后,通过抓包分析发现关键API接口: 该接口返回当前登录用户的敏感信息: 用户名(UserName) 加密后的密码(Password) 绑定的邮箱信息 绑定的电话信息 用户IP地址 2. 初步越权尝试 初始请求为GET方法,可见参数只有 Version : 尝试修改 Version 参数无效果,无法直接实现越权。 3. 参数构造突破 通过分析网站权限校验机制,推测可能基于 userId 进行校验。构造新参数: 成功实现越权,可查看任意用户的个人信息。 4. 第二个越权接口发现 通过插件findsomething发现第二个类似接口: 使用相同参数构造方法,同样存在越权漏洞。 关键突破点 1. UserId参数获取 初始漏洞存在一个限制:需要知道其他用户的 userId 才能实现越权。通过以下方式获取: 分析论坛界面数据包 发现 communityUserId 参数值与 userId 相同 通过点击不同帖子,获取不同作者的 communityUserId 将这些值作为 userId 参数使用 2. 参数遍历可能性 虽然 userId 本身不可遍历,但通过论坛公开信息可以获取大量用户的ID,使得漏洞危害性大幅提升。 漏洞利用流程总结 发现敏感接口 :通过常规浏览或抓包找到返回用户敏感信息的API 参数分析 :检查请求参数,寻找可能的权限控制参数(如userId) 参数构造 :尝试添加或修改权限控制参数 ID收集 :从网站其他功能点收集有效用户ID 批量获取 :使用收集的ID构造请求,获取多用户信息 防御建议 权限校验 :所有涉及用户数据的接口必须进行严格的权限校验 敏感信息保护 :避免在接口中返回不必要的敏感信息(如加密密码) 参数过滤 :对传入的用户ID进行有效性验证和权限检查 接口设计 :避免使用可预测的用户标识符 日志监控 :对异常的大量用户信息查询进行监控 报告要点 在提交漏洞报告时,需要包含: 漏洞详细复现步骤 两个存在问题的API接口 获取其他用户ID的方法 漏洞的实际危害证明 清晰的修复建议 通过这种系统的测试方法,不仅提高了漏洞被认可的概率,也确保了漏洞的高危评级。