Agartha
载荷注入(LFI、RCE、SQLi,可选BCheck)、认证问题(访问矩阵、HTTP 403)、复制为 JavaScript、以及 Bambdas
Agartha 专注于高级载荷生成与访问控制评估。它能精准识别与注入攻击、身份验证/授权相关的漏洞。动态载荷生成器可为多种注入向量(包括 SQL 注入、本地文件包含 LFI、远程代码执行 RCE)生成全面的字典。此外,该扩展还能构建完整的用户访问矩阵,揭示潜在的访问违规和权限提升路径。它还支持 HTTP 403 绕过检查,帮助发现认证配置错误。另外,它可以将 HTTP 请求转换为 JavaScript 代码,以便更深入地挖掘 XSS 问题。
概括而言:
- 载荷生成器:动态构建针对注入攻击的全面字典,集成多种编码与转义字符,提升安全测试效果。这些字典覆盖关键漏洞,如 SQL 注入(SQLi)、本地文件包含(LFI)、远程代码执行(RCE),现在还可生成 BCheck 语法,无缝集成到 Burp 的 BCheck 框架中。
- 本地文件包含、路径遍历:帮助识别允许攻击者访问服务器文件系统上的文件的漏洞。
- 远程代码执行、命令注入:旨在检测潜在的命令注入点,实现对代码执行漏洞的鲁棒测试。
- SQL 注入:协助发现 SQL 注入漏洞,包括堆叠查询、布尔型、联合查询型和时间型。
- 认证矩阵:通过构建完整的访问矩阵,工具揭示潜在的访问违规和权限提升路径。此功能通过处理认证与授权问题来增强安全态势。
- 你可以使用 Spider 功能生成站点地图/URL 列表,它会自动从用户会话中爬取可见链接。
- 403 绕过:旨在处理常见的访问限制,如 HTTP 403 Forbidden 响应。它利用 URL 操纵和请求头修改等技术来绕过这些限制。
- 复制为 JavaScript:将 HTTP 请求转换为 JavaScript 代码,用于进一步挖掘 XSS 漏洞等。
- Bambdas 脚本生成器:根据用户输入自动生成与 Bambdas 兼容的脚本。省去手动编码,加速自定义脚本的创建,简化与 Bambdas 引擎的集成。
下面是使用说明的小教程。
安装
你需要先下载 'Jython' 文件并配置环境:
- Burp 菜单 > Extender > Options > Python Environment > 定位 Jython standalone jar 文件。
你可以通过官方商店安装 Agartha:
- Burp 菜单 > Extender > BApp Store > Agartha
或者手动安装:
- Burp 菜单 > Extender > Extensions > Add > Extension Type: Python > Extension file(.py): 选择 'Agartha.py' 文件
最后,你会在主窗口中看到 'Agartha' 标签,它也会注册到右键菜单中,位于:
- 'Extensions > Agartha',包含三个子菜单:
-
'Auth Matrix'
-
'403 Bypass'
-
'Copy as JavaScript'
本地文件包含 / 路径遍历
它同时支持 Unix 和 Windows 文件语法,可为任意目标路径动态生成字典。此外,它还可以尝试绕过 Web 应用防火墙(WAF),采用多种编码和其他技术。
- 'Depth' 指定生成字典时目录遍历的深度。你可以创建达到或等于该级别的字典。默认值为 5。
- 'Waf Bypass' 询问是否需要启用所有绕过功能,如使用空字节、各种编码技术以及其他绕过 WAF 的方法。

远程代码执行 / 命令注入
它根据提供的命令动态生成命令执行的字典。它结合了 Unix 和 Windows 环境中的多种分隔符和终止符。

SQL 注入
它为各种类型的 SQL 注入攻击生成载荷,包括堆叠查询、布尔型、联合查询型和时间型。不需要用户输入;只需选择所需的 SQL 攻击类型和数据库,即可生成不同组合的字典。
- 'URL Encoding' 对输出进行编码。
- 'Waf Bypass' 询问是否需要启用所有绕过功能,如使用空字节、各种编码技术以及其他绕过 WAF 的方法。
- 'Union-Based' 需要指定生成载荷的深度。你可以创建达到该值的字典。默认值为 5。
- 其余方面涉及数据库类型和各种攻击向量。

BCheck 代码生成器
BCheck 是 Burp Suite 用于创建和导入自定义扫描检查的框架。这些用户定义的检查与 Burp Scanner 的内置例程同时运行,允许你针对特定漏洞或测试需求定制扫描。通过使用 BChecks,你可以扩展 Burp 的扫描能力,并优化你的工作流,以实现更具针对性、更高效的评估。
现在你可以自动生成代码:
- 你可以点击上方蓝色框中的 “Generate the Payloads” 按钮来创建经典字典,并可在 Burp 的 Intruder 或 Repeater 中手动使用。
- 现在你也可以选择点击红色框中的 “Generate payloads for BCheck” 按钮,生成同样但格式化为 BCheck 语法的载荷,准备用于扫描。
请注意,随着 Bambdas 脚本规模的增大,可能会导致性能问题,尤其在扫描期间。较大的脚本会降低响应速度、增加内存消耗,并导致执行任务延迟。
点击 "Generate payloads for BCheck" 按钮后,BCheck 代码将自动复制到你的剪贴板。
接下来,从 Burp Suite 菜单进入 'Extensions > BChecks > New > Blank',然后粘贴生成的代码。
你的载荷现在已集成到 BCheck 中。你可以手动发送或扫描 HTTP 请求,也可以启动包含 BCheck 控制的 Burp 扫描,以自动测试工具生成的注入载荷。
- 手动扫描:右键点击 HTTP 请求,选择 "Send to BChecks Editor"。然后点击生成的 BCheck 项,选择 "Run test"。
- 自动扫描:右键点击 HTTP 请求,选择 'Open Scan Launcher',然后前往 'Scan configuration > Select from library > Audit checks – BChecks only'。关闭对话框,你的扫描将仅使用你定义的 BCheck 运行。
微调建议:生成的代码作为模板,可能需要一些调整,因为不同应用和服务器之间的行为可能有所差异。
细化过滤器(例如指定 HTTP 响应码或响应中的关键词)有助于减少误报,使结果更精确、噪音更少。
授权矩阵 / 用户访问表
此部分专注于分析用户会话与 URL 之间的关系,以识别访问违规。该工具系统性地访问所有与预定义用户会话关联的 URL,并用 HTTP 响应填充表格。本质上,它创建了一个访问矩阵,有助于识别身份验证和授权问题。最终,这个过程揭示了哪些用户可以访问特定的页面内容。
- 你可以右键点击任意请求,选择 'Extensions > Agartha > Auth Matrix' 来定义 用户会话。
- 接下来,你需要提供用户(HTTP 头/会话所有者)可以访问的 URL 地址。你可以使用 'Spider' 功能进行自动爬取,或提供手动整理的 URL 列表。
- 之后,你可以使用 'Add User' 按钮添加用户会话。
- 现在已准备就绪。只需点击 'Run' 按钮,表格将相应填充。
更多细节:
- 这里是输入你所提供会话的用户名的字段。你可以添加最多四个不同的用户,每个用户分配不同的颜色以提高可读性。
- 'Add User' 按钮允许你将用户会话添加到矩阵中。
- 你可以将 HTTP 请求方法更改为 'GET'、'POST' 或 'Dynamic',后者基于代理历史。
- 'Reset' 按钮清除所有内容。
- 'Run' 按钮执行任务,并在用户访问矩阵中显示结果。
- 'Warnings' 区域使用不同颜色高亮显示潜在问题,便于识别。
- 'Spider (SiteMap)' 按钮根据用户的头/会话自动生成 URL 列表。可见的 URL 将填充到下一个文本框中,你仍然可以根据需要进行修改。
- 'Crawl Depth' 定义 'Spider' 爬取链接的最大子链接数。
- 该字段用于指定请求头,所有 URL 将使用此处定义的会话进行访问。
- 指定用户可以访问的 URL 地址。你可以手动创建此列表,或使用 'Spider' 爬虫功能。请确保为每个用户提供可访问的 URL 列表。
- 所有提供的 URL 将在此列出,并使用相应的用户会话尝试访问。
- 第一列表示无认证尝试的场景。所有 cookie、令牌以及潜在的会话参数将从 HTTP 调用中移除。
- 其余列对应之前生成的用户,每种颜色标识不同的 URL 所有者。
- 单元格标题显示每个用户会话的 HTTP 响应 '代码:长度',清晰呈现每次访问尝试的响应详情。
- 只需点击你想要查看的单元格,HTTP 详细信息将显示在底部。
请注意,潜在的会话终止符(如注销、登出等)以及特定文件类型(如 CSS、图片、JavaScript 等)将从 'Spider' 和用户的 URL 列表中过滤掉。
点击 'RUN' 后,工具将以不同颜色填充用户和 URL 矩阵。除了用户特定颜色外,你还会看到红色、橙色和黄色单元格,指示可能的访问问题。
- 红色 高亮显示严重访问违规,表现为响应返回 'HTTP 200' 且内容长度相同。
- 橙色 表示需要关注的中等程度问题,响应返回 'HTTP 200' 但内容长度不同。
- 黄色 表示响应返回 'HTTP 302' 状态,表示重定向。
此任务涉及批量处理,值得说明的是将使用哪些 HTTP 请求方法。该工具提供了三种不同的 HTTP 调用方式:
- GET:所有请求均使用 GET 方法发送。
- POST:所有请求均使用 POST 方法发送。
- Dynamic:请求方法由代理历史决定。如果无可用信息,默认使用基础头方法。
403 绕过
HTTP 403 Forbidden 状态码表示服务器理解请求但拒绝授权。本质上,它意味着“我认识你,但你无权访问此资源。”此状态通常指向“权限不足”、“需要认证”、“IP 限制”等问题。
该工具通过使用各种技术(如 URL 操纵和请求头修改)来解决常见的访问禁止错误。这些策略旨在绕过访问限制并获取所需内容。
值得提及两种不同的使用场景:
- 在与 认证问题 相关的场景中,考虑移除所有会话标识符至关重要。之后,测试是否有任何资源变得可公开访问。这种方法有助于识别未认证的访问,确保敏感信息受到保护。
- 对于 权限提升和授权 测试,保留会话标识符,但将其限制在特定用户角色下使用。例如,你可以使用普通用户的会话,同时替换管理员的 URL。这种有针对性的方法允许更精确高效的测试,确保特权资源在没有适当角色时不可访问。
有两种方式可以将 HTTP 请求发送到该工具。
- 你可以通过点击 'Load Requests' 按钮从代理历史加载请求。这样做会自动移除所有会话标识符,适用于攻击 场景 1。任何潜在的会话终止符(如注销、登出等)以及特定文件类型(如 CSS、图片、JavaScript 等)也将被过滤掉。请注意,这是一个批量过程,可能需要更长时间,因为它涉及重新访问历史中的每个 HTTP 请求。然而,对所有端点进行如此全面的验证对于确保认证机制的安全性至关重要。
- 你可以通过右键点击发送单个请求。会话标识符将保留/保持不变,因此此方法适用于攻击 场景 2。这种受控的方法允许你评估特权资源在没有适当角色时是否可访问。它将更具体、更快速,因为用户可以选择要测试的 URL,而不是复制历史中的所有内容。
我们试图访问的页面属于特权用户组,并且我们保留会话标识符以验证是否可能实现权限提升。
只需点击 'RUN' 按钮即可执行任务。
下图显示某个 URL 可能存在访问问题,'红色' 表示警告。
- 选择目标主机名,点击 'Load Requests' 按钮从代理历史加载请求。
- 启用过滤器:由于处理 HTTP 历史中的所有 URL 是批量任务,此部分提供选项以应用匹配条件。
- 启用 URL 分组功能(实验性)旨在消除仅因唯一 ID 而不同的相似端点,将其计为单个条目。
- 你可以选择仅加载过去 n 天内的 URL。
- 你也可以指定某些关键词来控制加载的 URL,例如:/admin/, user
- URL 和头信息详情
- 请求尝试与结果
- HTTP 请求与响应
请注意,尝试次数取决于具体的目标 URL。
复制为 JavaScript
该功能允许将 HTTP 请求转换为 JavaScript 代码,这对于超越 XSS 漏洞以及绕过 Header 限制尤为有用。
要使用此功能,只需右键点击任意 HTTP 请求,选择 'Extensions > Agartha > Copy as JavaScript'。