AuthMatrix 是 Burp Suite 的一个扩展,提供了一种简单的方法来测试 Web 应用程序和 Web 服务中的授权。使用 AuthMatrix,测试人员可以预先专注于为特定目标应用彻底定义用户、角色和请求的表。这些表的结构类似于各种威胁建模方法中常见的访问控制矩阵。
一旦表组装完成,测试人员可以使用简单的点击运行界面启动所有角色和请求的组合。结果可以通过易于阅读、颜色编码的界面确认,指示系统中检测到的任何授权漏洞。此外,该扩展还提供了保存和加载目标配置的能力,以进行简单的回归测试。
AuthMatrix 可以通过 Burp Suite 的 BApp Store 安装。在 Burp Suite 中,选择 Extender 选项卡,选择 BApp Store,选择 AuthMatrix,然后点击安装。
对于手动安装,请从此仓库下载 AuthMatrix.py。然后在 Burp Suite 中,选择 Extender 选项卡,点击 Add 按钮,将扩展类型更改为 Python,然后选择 AuthMatrix 的 Python 文件。
AuthMatrix 需要配置 Burp Suite 使用 Jython。简单说明位于以下 URL。
https://portswigger.net/burp/help/extender.html#options_pythonenv
请确保使用 Jython 2.7.0 或更高版本以确保兼容性。
为目标应用程序中的所有权限级别创建角色。(常见角色可能包括 User、Admin 和 Anonymous)
创建足够的用户以匹配这些不同角色,并选中用户所属的所有角色的复选框。仅包含一个用户的“Single-User”角色将自动配置,以协助跨用户资源测试。如果不需要,可以通过右键单击请求表中的列来删除这些角色。
从 Repeater 选项卡为每个用户生成会话令牌,并将其输入到用户表中的相关列中。可以通过 Repeater 中的右键菜单将 Cookie 直接发送给用户。AuthMatrix 将智能解析表中的 Cookie 字符串,并在适用时替换/添加到请求中。
注意:Cookies 字段是可选的。如果目标使用 HTTP 头,可以通过点击“New Header”按钮添加。
对于更高级的配置,包括自动刷新凭据,请参阅下面的“Chains for Authenticating Users”示例。
从 Burp Suite 的其他区域(例如 Target 选项卡、Repeater 选项卡等)右键单击请求,然后选择“Send to AuthMatrix”。
在 AuthMatrix 的请求表中,选中所有被授权发起每个 HTTP 请求的角色的复选框。
根据请求的预期响应行为自定义响应正则表达式,以确定操作是否成功。
常见正则表达式包括 HTTP 响应头、正文中的成功消息或页面正文中的其他变化。
注意:可以通过右键菜单将请求配置为使用失败正则表达式(即,已认证用户不应收到 HTTP 303)
点击底部的 Run 运行所有请求,或右键单击多个请求并选择 Run。观察旁边的表格将显示颜色编码的结果。
绿色表示未检测到漏洞
红色表示请求可能包含漏洞
蓝色表示结果可能是误报。(通常意味着存在无效/过期的会话令牌或不正确的正则表达式)


链提供了一种将静态或动态值复制到请求正文中的方法。这些值可以从先前运行请求的响应中提取(使用正则表达式),或者通过指定用户特定的静态字符串值来获取。
链最常见的用例包括:
用有效的 CSRF Token 填充请求
测试新创建的 ID/GUID 是否存在跨用户授权问题
自动化认证和会话刷新
一个链条目包含以下值:
链名称: 描述性名称
来源: 用户表中定义的静态用户字符串或请求表中源请求的 ID
提取正则表达式: 用于从源请求的响应中提取值的正则表达式。仅当在前一个字段中指定了请求时才使用此字段。如果使用,必须包含一个要提取的括号分组 [例如 (.*)]
目标: 源值将替换到的请求 ID 列表。
替换正则表达式: 用于确定源值插入位置的正则表达式。必须包含一个要替换的括号分组 [例如 (.*)]
使用来自: 指定是使用从选定用户获得的源值(适用于跨用户资源测试)还是使用来自所有用户的值并将其放入对应用户的目标请求中(适用于自动任务,如 CSRF Token 获取)
注意: 请求按行顺序运行,但如果检测到链依赖,AuthMatrix 将按所需顺序运行请求。



对于某些目标,配置 AuthMatrix 来检测请求失败时的响应条件可能更容易。例如,如果目标网站在成功请求时返回独特数据,但在执行未授权操作时总是返回 HTTP 303。
在此模式下,AuthMatrix 将为所有不属于成功角色的用户验证此正则表达式。
为此,右键单击请求并选择“Toggle Regex Mode”。正则表达式字段将高亮为紫色,表示 AuthMatrix 将在失败正则表达式模式下运行该请求。
注意: 在失败正则表达式模式下,误报检测和高亮可能不起作用。
