Files
2026-03-11 10:31:47 +08:00

1.1 KiB

Web 测试越权漏洞发现敏感参数都经过了带有 HMAC 验证,在无法暴力破解 Key 的情况下怎么绕过

1. 算法混淆与降级

  • 尝试将签名算法字段改为 none 或弱算法,观察是否被接受

2. 签名比较方式

  • 若后端使用 ==strcmp 进行字符串比较,可能被时序攻击类型混淆利用

3. 签名截断

  • 某些系统只验证签名的前几位(如前16位),可尝试截断签名或提交短签名,观察是否通过校验

4. 参数注入与覆盖

  • 利用 HTTP 参数解析歧义(如 role=A&role=admin),后端可能取第一个或最后一个值,而签名可能只覆盖其中一个

5. 参数排序与拼接

  • 如果签名基于键值对拼接(如k1=v1&k2=v2),但后端解析时对参数进行排序或去重,导致签名验证时使用的字符串与原始不同。尝试调整参数顺序,使签名仍匹配

6. 签名生成接口暴露

  • 检查是否存在未授权的签名生成接口(如/sign?data=...),可构造任意参数的签名。若该接口未严格校验权限,则直接获取有效签名