乐于分享
好东西不私藏

让AI再次伟大:OST插件引入MCP

让AI再次伟大:OST插件引入MCP

让我们拥抱AI,OST插件引入MCP

原项目onscan_Expand精简名称,现更名为OST。

做 Burp 插件时,经常会遇到一个问题:插件里明明已经有很多上下文,但 AI 看不到,导致AI重复造轮子,会浪费许多token,还有的问题是已有解决方案,但是AI用不上,分出额外的精力去重复解决之前遇到过的问题。

比如 OST 里有:

  • 当前扫描任务
  • 扫描结果表
  • 自定义字典
  • 当前选中的 Payload 字典
  • 指纹识别结果
  • 数据收集结果
  • SQLite 持久化历史
  • 浏览器请求重放结果
  • 前端拦截页面判断逻辑

这些都不是 Burp 原生 UI 直接提供给 AI 的结构化能力,而是 OST 插件自己的运行状态。

没有 MCP 时,AI 想帮忙分析,只能依赖人手动复制:

  1. 从 OST 表格里复制 URL、状态码、标题
  2. 把响应摘要贴给 AI
  3. AI 给出建议
  4. 人再回到 OST 里切字典、重新扫描、导出结果

这个过程很慢,而且上下文容易断。

MCP 的作用,就是让 AI 通过标准接口直接访问 OST 的插件能力。

OST MCP 能做什么?

OST 1.1.7 当前提供了一组 ost.* 工具。

例如:

ost.status.get ost.tasks.list ost.tasks.search ost.tasks.get ost.scan.urls ost.scan.request ost.wordlists.list ost.wordlist.select ost.wordlist.create ost.wordlist.append ost.wordlist.put ost.wordlist.import_file ost.wordlist.delete ost.fingerprint.check ost.collect.node.get ost.history.labels ost.export.csv

这些能力对应的是 OST 插件内部已有的模块:

  • 任务结果查询
  • 扫描任务提交
  • 指纹识别
  • 数据收集读取
  • 字典管理
  • 历史数据读取
  • CSV 导出

AI 可以通过这些工具更准确地理解 OST 当前状态。

比如它可以先调用:

ost.status.get

查看插件当前配置。

再调用:

ost.tasks.search

搜索某个 Host、状态码、标题或指纹。

如果需要切换字典,可以调用:

ost.wordlist.select

如果需要临时创建一个测试字典,可以调用:

ost.wordlist.create ost.wordlist.append

这些都是 OST 插件自己的工作流,不是 Burp 原生功能。

MCP 默认关闭

虽然 OST 的 MCP server 只监听本地 127.0.0.1,但它仍然是一个能让外部客户端调用插件能力的接口。

所以从 1.1.7 开始,MCP 默认关闭。

需要手动进入:

插件配置 -> 其他配置 -> MCP 服务

勾选启用。

启用后,配置页会直接显示:

  • 当前状态
  • 实际 MCP Endpoint
  • Health Check 地址

默认 endpoint 是:

http://127.0.0.1:8765/mcp

如果端口被占用,OST 会自动尝试后续端口,直到 8785。最终实际端口以配置页显示为准。

浏览器请求也是 OST 的能力

OST 里还有一个比较实用的能力:浏览器请求重放。

有些目标站点会返回前端拦截页面,比如 412、JS 校验页、验证页等。如果普通 HTTP 请求一直拿到同一个拦截响应,继续扫描就会产生大量重复无效结果。

OST 在 auto 请求模式下,可以结合拦截特征判断,必要时切换到浏览器请求。

这里同样要强调:

这不是 Burp 原生浏览器功能的 MCP 封装,而是 OST 插件内部的请求处理策略。

MCP 只是让 AI 能调用 OST 的扫描入口,并读取 OST 整理后的结果。

字典管理为什么要给 MCP?

因为字典是 OST 扫描工作流里的核心状态。

如果 AI 只能提交扫描,但不能查看或切换当前字典,它仍然无法独立完成一个完整的测试流程。

所以 OST MCP 里加入了字典管理能力:

  • 查看字典组
  • 查看当前选中字典
  • 切换字典
  • 创建临时字典
  • 追加字典项
  • 导入本地字典文件
  • 覆盖字典内容
  • 删除字典

其中覆盖和删除这类操作需要显式确认,避免误操作。