v1.1.0 | 基于 Jython 的 Burp Suite 被动扫描插件,自动检测 未授权访问、水平越权、垂直越权 漏洞,覆盖增删改查全场景,内置 JWT 安全工具集(alg:none 被动扫描 + HMAC 密钥爆破被动扫描)。
| 检测维度 | 说明 |
|---|---|
| 未授权访问 | 物理删除所有认证信息后重放请求,或替换为 Guest Token |
| 水平越权 | 替换为同权限级别其他用户的凭据,检测能否跨用户访问资源 |
| 垂直越权 | 替换为低权限用户凭据,检测能否执行高权限操作 |
- 所有替换后的重放请求均会记录到扫描结果,按认证类型(未授权 / 水平越权 / 垂直越权)分类展示
- 检测到漏洞的记录标记 IDOR 标签(查 / 增 / 改 / 删),未发现漏洞的记录标记为灰色「安全」
- 状态栏同时显示总记录数和告警数,便于整体把控扫描进度
- 在 Burp Proxy History、Repeater 等面板中选中请求,右键选择 "发送到 AuthMatrix Pro+" 即可将请求直接推送到插件进行扫描
- 支持批量选择多个请求一次性发送
- 扫描结果表格支持 点击列头排序(升序/降序切换)
- 内置 实时搜索过滤栏,输入关键词即可过滤显示匹配的结果行(大小写不敏感)
| 操作 | 检测方式 | 默认状态 |
|---|---|---|
| 查 (Read) | 响应体相似度对比,超过阈值即判定为疑似漏洞 | 始终启用 |
| 增 (Create) | 路径关键词匹配 + 响应关键词(如"已存在""重复") | 默认开启 |
| 改 (Update) | 路径关键词匹配 + 响应关键词(如"相同""未改变") | 默认关闭 |
| 删 (Delete) | 路径关键词匹配 + 响应关键词(如"不存在""已删除") | 默认关闭 |
- 同一条告警可同时携带多个 IDOR 标签,如
查+增、查+删 - 增删改检测独立于查检测,互不干扰
交互式工具:
- 解码 / 编码:粘贴 JWT Token 自动拆分 Header/Payload/Signature,编辑后可重新编码
- alg:none 攻击:一键生成 4 种
alg变体攻击向量 - 密钥爆破:内置约 350 条常见弱密钥字典,对 HS256/HS384/HS512 算法进行离线爆破,字典可自由编辑扩展
- 过期检测:自动检查
exp字段是否过期 - 时间戳工具:Unix 时间戳与日期互转,支持 Local/UTC 双时区
被动扫描(自动化):
- alg:none 被动扫描:自动识别流量中的 JWT Token,将
alg替换为none/None/NONE/nOnE四种变体并清空签名后重放。当请求中包含多个 JWT 时,会同时替换所有 JWT,全部绕过后响应仍相似才判定为漏洞。若服务端未校验签名(返回相似响应),则标记为 JWT 签名验证绕过漏洞 - HMAC 密钥爆破被动扫描:对 HS256/HS384/HS512 签名的 JWT,使用内置字典自动离线爆破。若成功找到密钥,用该密钥重签并重放验证,确认后在扫描结果中标记漏洞和密钥
- 每个唯一的 JWT Token 组合仅扫描一次,不会重复检测
- 检测结果与 IDOR 检测结果统一展示在扫描结果 Tab,IDOR标签列显示
JWT
- Burp Suite Professional 或 Community Edition
- Jython Standalone JAR(2.7.x)
- 下载 Jython JAR:https://www.jython.org/download
- Burp Suite ->
Extender->Options->Python Environment-> 选择 Jython JAR 路径 Extender->Extensions->Add- Extension Type: Python
- Extension File: 选择
AuthMatrix Pro.py
- 加载成功后,顶部会出现 AuthMatrix Pro+ Tab
| 配置项 | 说明 | 建议值 |
|---|---|---|
| 激活插件 | 总开关 | 测试时开启 |
| 相似度阈值 | 重放响应与原始响应 Body 相似度达到此值则判定疑似越权 | 80% |
| HTTP 方法 | 勾选要检测的 HTTP 方法(仅影响 IDOR 检测,不影响 JWT 被动扫描) | GET + POST 起步 |
| 响应排除关键字 | 响应体包含这些词则排除(仅影响「查」检测) | error, denied, forbidden |
| 域名 / 路径过滤 | 控制扫描范围(IDOR 和 JWT 共享此规则) | 按需配置 |
在「身份配置」Tab 中分别配置三种检测的凭据(未授权 / 水平越权 / 垂直越权):
- 请求头 (Header):可视化表格,Name 填头名称(如
Cookie),Value 填头值(如session=xxx) - 请求参数 (Parameter):可视化表格,Name 填参数名(如
csrf_token),Value 填参数值(如guest_token) - 支持动态添加 / 删除行,GET 和 POST 参数均会替换
- 智能匹配:只有原始请求中已包含对应请求头或参数时才会执行替换,不会向请求中新增原本不存在的头或参数,避免无效检测
在「增删改配置」Tab 中配置:
- 路径关键词:仅匹配 URL 路径 最后一层目录(如
/api/users/create中的create),降低中间路径误匹配噪音 - 响应关键词:重放后响应体包含这些关键词时判定为疑似漏洞
PUT/PATCH自动归入「改」,DELETE自动归入「删」- 改和删的开关默认关闭,请根据测试环境谨慎开启
在「JWT工具」->「被动扫描」子页面中配置:
- alg:none 被动扫描:默认开启。检测流量中 JWT 的签名验证是否可被绕过
- HMAC 密钥爆破被动扫描:默认开启。使用字典尝试离线爆破 JWT 密钥
- 爆破字典在「密钥爆破」子页面中维护,可自行添加/修改
- JWT 被动扫描不受 HTTP 方法过滤限制,但共享域名和路径过滤规则
所有替换后的重放请求均会记录到扫描结果中,按认证类型分类。
| 列名 | 说明 |
|---|---|
| 认证类型 | 未授权(物理删除) / 未授权(GuestToken) / 水平越权 / 垂直越权 / JWT:alg:none(...) / JWT:WeakKey=... |
| IDOR标签 | 查 / 增 / 改 / 删 / JWT(可组合)/ 安全(未发现漏洞) |
| Sim% | 重放响应与原始响应的相似度 |
颜色标记:
- 紫色:JWT 漏洞
- 蓝色:查越权
- 绿色:增越权
- 橙色:改越权
- 红色:删越权
- 灰色:安全(未发现漏洞)
解码 / 编码:
- 粘贴 Token -> 点击「解码 Decode」
- 编辑 Header/Payload JSON
- 点击「编码」重新生成 Token
密钥爆破:
- 粘贴待爆破的 JWT Token
- 内置约 350 条常见弱密钥,可自行添加
- 点击「开始爆破」,支持 HS256/HS384/HS512
时间戳工具:
- Unix 时间戳与日期互转
- 支持 Local 和 UTC 双时区显示
原始请求 (UserA) -> 200 + 业务数据
替换凭据重放 -> 200 + ???
判定: 响应体相似度 >= 阈值 AND 不含排除关键词 -> 疑似越权
双重判定,任一命中即为疑似漏洞:
- 条件 A(相似度): 与查检测相同的相似度比对
- 条件 B(响应语义): 响应包含操作特征关键词且状态码非 401/403
| 操作 | 特征关键词示例 | 判定逻辑 |
|---|---|---|
| 增 | "已存在" "重复" "duplicate" | 请求穿透鉴权层到达业务逻辑层 |
| 改 | "相同" "未改变" "unchanged" | 服务端比对了新旧值,鉴权缺失 |
| 删 | "不存在" "已删除" "not found" | 服务端查询了目标资源,鉴权缺失 |
原始请求: Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.xxx.sig
1. 识别请求中的 JWT Token
2. 构造 4 种 alg:none 变体: none / None / NONE / nOnE
3. 替换 JWT 并清空签名后重放
4. 比对响应: 相似度 >= 阈值 AND 状态码非 401/403 -> JWT 签名绕过漏洞
原始请求含 JWT (alg: HS256):
1. 离线计算: HMAC-SHA256(header.payload, 字典中每个密钥)
2. 比对签名: 若匹配 -> 密钥已泄露
3. 用该密钥重签 JWT 并重放验证
4. 确认后标记漏洞: JWT:WeakKey=密钥值
- 生产环境慎用:增删改检测和 JWT 扫描会实际重放请求,可能产生副作用
- 凭据有效性:Session/Token 会过期,检测前确保凭据有效
- 性能影响:8 线程并发重放,高流量场景注意对目标的压力;任务队列上限 500,超出后自动丢弃最旧的待处理任务
- 误报处理:公开接口会产生高相似度误报,可通过白名单/黑名单过滤
- JWT 去重:每个唯一的 JWT 仅扫描一次,清空结果会重置去重缓存
- 日志上限:扫描结果最多保留 5000 条,达到上限后需清空结果才能继续记录
- 大响应保护:响应体超过 256KB 时自动截断后再做相似度比对,防止比对耗时过长