逻辑让我崩溃之越权姿势分享(续集)
字数 1385 2025-08-27 12:33:48

逻辑越权漏洞挖掘与利用高级技巧

0x01 前言

本文总结了多种逻辑越权漏洞的挖掘方法和利用技巧,包括隐藏表单利用、边缘功能点测试、身份校验绕过、HPP参数污染等技术。这些技术在实际渗透测试中非常实用,能够帮助测试人员发现常规测试方法难以发现的漏洞。

0x02 隐藏表单利用

漏洞场景

当点击某个功能后返回空白或"无记录"提示,且请求中不包含用户参数时,可能存在隐藏的表单字段被遗漏。

典型案例

  1. 信用卡查询功能返回"无记录",但页面中存在隐藏的form表单
  2. 通过修改隐藏input框的value属性,添加可选择的账号参数
  3. 后端可能未对该接口做充分鉴权,导致通过修改隐藏参数实现越权查询

关键点

  • 检查页面中所有隐藏的form表单(<input type="hidden">)
  • 尝试修改隐藏参数的值并观察响应变化
  • 验证后端是否对接口查询操作做了鉴权判断

0x03 边缘功能点测试

漏洞场景

应用中一些看似不重要的边缘功能点(如"显示所有"、"保存所有"等)可能存在越权漏洞。

典型案例

  1. 历史交易明细查询中的"显示所有"功能
  2. 该功能会为每个用户对应一个id号,通过修改FileName参数可批量查询他人账户交易信息
  3. 漏洞允许攻击者保存下载他人的完整交易记录

关键点

  • 重点关注以下功能点:查询、详情、明细、下载记录等
  • 特别检查"显示所有"、"导出全部"等批量操作功能
  • 验证批量操作是否使用可预测的ID参数

0x04 身份校验绕过

漏洞场景

通过替换cookie中的身份标识参数,结合特定业务逻辑实现越权操作。

典型案例

  1. 使用两个测试账号A(未设支付密码)和B(已设支付密码)
  2. A账户设置支付密码时,拦截请求替换cookie中的mssc_sid为B账户的值
  3. 第一步身份校验通过后,第二步设置密码操作会修改B账户的支付密码

漏洞原理

  • 未校验用户身份标识是否为当前登录账户所属
  • 仅第一次校验用户身份,后续操作不再校验
  • 利用未设密码账户可直接设置密码的特性

关键点

  • 寻找业务流程中身份校验只做一次的情况
  • 关注cookie或参数中的用户唯一标识(mssc_sid等)
  • 测试是否可以中途替换身份标识完成越权操作

0x05 HPP参数污染

漏洞场景

通过HTTP参数污染(HPP)技术,为同一参数提供多个值,利用应用解析错误实现越权。

典型案例

  1. 账户别名修改功能,请求中包含PayeeId参数
  2. PayeeId前14位固定,后4位有规律(递增或随机)
  3. 在修改A账户别名时,附加B账户的PayeeId参数
  4. 导致B账户的别名和手机号被修改为A账户的值

利用技巧

  • PayeeId参数可爆破(前14位固定,后4位可预测)
  • 可结合存储型XSS提高漏洞危害
  • 批量修改多个账户信息

关键点

  • 测试所有接收用户ID的参数是否支持多值
  • 观察ID参数的生成规律(固定前缀+可变后缀)
  • 验证后端是否使用第一个或最后一个参数值

0x06 总结

  1. 隐藏表单:全面检查页面中的所有表单元素,特别是隐藏字段
  2. 边缘功能:不放过任何看似不重要的功能点,特别是批量操作
  3. 身份校验:测试身份标识参数是否可替换,校验是否充分
  4. HPP技术:测试所有ID参数是否支持多值,利用解析差异
  5. 组合利用:多个漏洞组合使用可提高漏洞危害和利用成功率

通过系统性地应用这些技术,测试人员可以发现更多深层次的逻辑漏洞,提高渗透测试的效果。

逻辑越权漏洞挖掘与利用高级技巧 0x01 前言 本文总结了多种逻辑越权漏洞的挖掘方法和利用技巧,包括隐藏表单利用、边缘功能点测试、身份校验绕过、HPP参数污染等技术。这些技术在实际渗透测试中非常实用,能够帮助测试人员发现常规测试方法难以发现的漏洞。 0x02 隐藏表单利用 漏洞场景 当点击某个功能后返回空白或"无记录"提示,且请求中不包含用户参数时,可能存在隐藏的表单字段被遗漏。 典型案例 信用卡查询功能返回"无记录",但页面中存在隐藏的form表单 通过修改隐藏input框的value属性,添加可选择的账号参数 后端可能未对该接口做充分鉴权,导致通过修改隐藏参数实现越权查询 关键点 检查页面中所有隐藏的form表单( <input type="hidden"> ) 尝试修改隐藏参数的值并观察响应变化 验证后端是否对接口查询操作做了鉴权判断 0x03 边缘功能点测试 漏洞场景 应用中一些看似不重要的边缘功能点(如"显示所有"、"保存所有"等)可能存在越权漏洞。 典型案例 历史交易明细查询中的"显示所有"功能 该功能会为每个用户对应一个id号,通过修改FileName参数可批量查询他人账户交易信息 漏洞允许攻击者保存下载他人的完整交易记录 关键点 重点关注以下功能点:查询、详情、明细、下载记录等 特别检查"显示所有"、"导出全部"等批量操作功能 验证批量操作是否使用可预测的ID参数 0x04 身份校验绕过 漏洞场景 通过替换cookie中的身份标识参数,结合特定业务逻辑实现越权操作。 典型案例 使用两个测试账号A(未设支付密码)和B(已设支付密码) A账户设置支付密码时,拦截请求替换cookie中的mssc_ sid为B账户的值 第一步身份校验通过后,第二步设置密码操作会修改B账户的支付密码 漏洞原理 未校验用户身份标识是否为当前登录账户所属 仅第一次校验用户身份,后续操作不再校验 利用未设密码账户可直接设置密码的特性 关键点 寻找业务流程中身份校验只做一次的情况 关注cookie或参数中的用户唯一标识(mssc_ sid等) 测试是否可以中途替换身份标识完成越权操作 0x05 HPP参数污染 漏洞场景 通过HTTP参数污染(HPP)技术,为同一参数提供多个值,利用应用解析错误实现越权。 典型案例 账户别名修改功能,请求中包含PayeeId参数 PayeeId前14位固定,后4位有规律(递增或随机) 在修改A账户别名时,附加B账户的PayeeId参数 导致B账户的别名和手机号被修改为A账户的值 利用技巧 PayeeId参数可爆破(前14位固定,后4位可预测) 可结合存储型XSS提高漏洞危害 批量修改多个账户信息 关键点 测试所有接收用户ID的参数是否支持多值 观察ID参数的生成规律(固定前缀+可变后缀) 验证后端是否使用第一个或最后一个参数值 0x06 总结 隐藏表单 :全面检查页面中的所有表单元素,特别是隐藏字段 边缘功能 :不放过任何看似不重要的功能点,特别是批量操作 身份校验 :测试身份标识参数是否可替换,校验是否充分 HPP技术 :测试所有ID参数是否支持多值,利用解析差异 组合利用 :多个漏洞组合使用可提高漏洞危害和利用成功率 通过系统性地应用这些技术,测试人员可以发现更多深层次的逻辑漏洞,提高渗透测试的效果。