
本次测试的 Burp Suite 版本是 2025.3。在这个万物皆AI的时代,Burp 也迎来了它的AI功能更新。本文将带你体验两个主要更新,相关官方发布说明可以在 https://portswigger.net/burp/releases/professional-community-2025-3 查看。


Burp 中的 AI “赛博郎中”
Burp 的新 AI 功能增强了你的测试工作流程,帮助你更快地完成手动任务,更快地理解复杂问题,并将精力集中在最重要的地方。
Burp AI 目前包含以下四项核心功能:
Explore Issue - 自动调查由 Burp Scanner 识别的漏洞,为你节省时间和精力。Explore Issue 会像一名人类渗透测试员一样跟进——尝试利用漏洞、识别额外的攻击向量,并总结发现以便你更高效地验证和展示影响。
- 解释器 - 帮助你快速理解
Burp Suite 中的陌生技术。在 Repeater 消息中高亮任何部分并点击按钮,即可获取 AI 生成的解释。
- 访问控制错误减少 -
Burp 通过智能过滤掉结果中的假阳性来增强对访问控制错误的扫描检查,让你能够专注于真正的威胁。
- 基于
AI 的录制登录 - 为 Web 应用程序配置身份验证可能耗时且容易出错。Burp 可以使用 AI 自动生成录制的登录序列,节省时间并降低人为错误的风险。
需要注意的是,AI 功能目前仅在 Burp Suite Professional 版本中可用。
下面我们通过实际测试来看看这些功能的表现。类似的技术实践与讨论,也可以在 云栈社区 的安全技术板块找到更多交流。
功能预览与准备
首先,你需要拥有一个 Burp Suite Professional 许可证(年费 $475.00),或者使用试用版。

成功登录账户后,系统默认会赠送 10000 AI 积分。根据我的测试,一次完整的 AI Exploring 问询大约会耗费 1000 积分。这意味着赠送的 1w 积分大约可以进行 8~11 次 AI Explore issue 操作。
AI 探索漏洞实战
对于任何通过主动或被动扫描检测到的漏洞,在其详情页面都可以看到一个显眼的 Explore issue 按钮。

我选择了一个 SQL 注入漏洞进行测试。点击 Explore issue 后,Burp 会创建一个新的探索任务。

等待大约 1 分钟,AI 完成了 7 次请求,总共耗费了约 1800 积分。下面是每次请求的步骤详情与分析:

- 提供摘要:AI首先确认了SQL注入漏洞的存在,并计划通过查询
information_schema 来尝试提取 users 和 member 表中的用户凭证,但尚不确定正确的表结构。
- 尝试 UNION SELECT 提取表名:

- 处理编码问题:AI发现步骤2的请求因未进行URL编码而返回
400 错误,于是自动进行了编码并重新发送查询。
- 提取数据库和表名。
- 枚举常见列名:尝试从当前数据库中枚举常见的列(如username, password, email)。
- 调整策略:上一步枚举失败后,AI转而查询
information_schema.columns,以确定正确的表名和列名。
- 发起最终攻击:发送Payload:
'+AND+1=2+UNION+SELECT+username,password,3+FROM+pikachu.member--+。
回顾整个流程,AI的思考和行为逻辑几乎完美,比手工注入快得多。不过最后一步出现了一个小问题:password 字段实际上并不存在于 pikachu.member 表中,它应该在 pikachu.users 表里。这个细微的偏差可能源于测试环境数据库结构的特殊性。
AI 解析功能体验
这个功能的用法非常简单:在 Repeater 功能中,选中 Request 或 Response 标签页里任意 3-1000 长度的字符串,右键选择 Explain this 即可触发AI解析。

解析结果会显示在右侧的 Explanations 面板中:

解析内容示例如下:
该片段表明在请求行的查询字符串中尝试了SQL注入。
序列 `'+UNION+SELECT+username,password,email+FROM+users--+`
旨在将一个UNION SELECT语句附加到现有的查询中,试图从`users`表中提取数据。
`--+` 作为注释,有效地忽略了后续的SQL查询。该模式的存在表明请求试图利用SQL数据库中的漏洞。
AI 登陆录制测试
这项功能旨在自动化登录流程的录制。在新建扫描任务配置“Application login”时,可以选择使用AI录制。

我简单测试了一下,识别准度非常高。

测试时,我只提供了账户和密码,没有指定其他任何信息。而目标QQ邮箱的默认登录页面是扫码登录,并不直接显示密码输入框。

在不手动点击“密码登录”的情况下,页面是不会显示账号密码输入框的。AI等待了一会儿,竟然成功模拟了点击“密码登录”的操作,并输入了密码。不过,整个流程最终卡在了滑块验证码环节。这次尝试大约耗费了 600 积分。这说明AI在理解简单Web交互流程上表现不错,但对于复杂的图形验证码仍然无能为力。
自定义动作 Custom actions
虽然这个模块不属于AI功能,但同样是 2025.3 版本的新特性,值得一并体验。它主要为 Burp Repeater 添加了自定义操作能力。这些操作是你可以应用于 HTTP 消息以提取和分析数据的任务,由称为 Bambdas 的代码片段驱动,可以直接在 Burp Suite 界面中运行。
自定义动作用途广泛,例如:
- 分析响应 - 提取数据、计算元素数量、解码和编码消息内容、检查特定内容。
- 检索额外数据 - 执行查找、解析主机名和获取外部数据。
- 重新发送请求 - 修改标头、参数或正文内容并重新发送请求。
要开始使用,可以尝试加载官方示例 Bambdas:在 Repeater 的空自定义操作侧边栏中点击“添加示例”即可。
默认提供了4个自定义操作模板:
- 反向查找DNS
- 删除Cookie并重新请求,然后打印状态码
- 解码response中选中的unicode编码
- 计算response hashcode

如何定制与使用?
我对其中两个模板进行了修改以适应个人需求。
首先,将 Unicode-decode selected text 模板中的 responseSelection 修改为 requestSelection,使其能解码请求中被选中的Unicode文本。
其次,重写了 Calculate response metadata 模板的代码,我希望它能打印请求中的所有参数(不包括Cookie参数)。修改后的 Bambda 代码如下:
logging().logToOutput(“请求参数:“+
requestResponse.request().parameters()
.parallelStream()
.filter(p -> !“COOKIE“.equals(p.type().name()))
.map(p -> p.name().toString())
.collect(Collectors.joining(“, “))
);
使用起来非常直观:在 Request 面板中选中一段Unicode编码的文本,然后点击对应的自定义动作按钮,输出结果就会显示在下方面板中。另一个修改过的脚本设置为自动运行(图标带“A”标识)。

这个功能非常实用,可以极大减少渗透测试中一些重复性步骤的工作量,例如越权测试、CORS检查、各种编码解码、常用Payload替换等等,显著提升审计效率。对于追求自动化的工作流,这类工具的使用心得也是运维与测试领域常常探讨的话题。