返回更新列表
新发布Aug 2, 2026

toolbox v0.2.1

通过CLI和MCP在人类与代理之间进行协作式应用安全测试

分享
go-appsec/toolbox

license Build Status Vibe-Scale 1.0(V2|U0|T0): Significant AI, fully reviewed

基于 MCP 的应用安全测试工具,专为你的编码代理打造。

它不是扫描器,而是一个协作工作台。代理不擅长处理 UI 和有状态 API,而这两者正是你所擅长的。Sectool 让你可以通过其代理探索应用程序,同时由代理分析并操纵你生成的相同认证流量。

你负责处理认证和 UI 交互,代理则负责查询流量、修改请求、发现反射、监控带外交互,并尝试其他排列组合。将双方能力相结合,常规任务会变得更简单,隐藏的指标更不易被遗漏,复杂测试也能更加彻底。

快速开始

1. 安装 sectool

go install github.com/go-appsec/toolbox/sectool@latest

没有 Go?最新版本下载适用于你平台的二进制文件(Linux、macOS、Windows——amd64 和 arm64)。

2. 启动 MCP(模型上下文协议)服务器

sectool mcp

这将在 9119 端口启动一个 MCP 服务器,并带有 8080 端口的内置 HTTP 代理。

3. 配置你的浏览器

将浏览器的代理设置指向 127.0.0.1:8080(或使用 --proxy-port 指定的端口)。

如需进行 HTTPS 拦截,请安装来自 ~/.sectool/ca.pem 的 CA 证书(首次运行时自动生成)。大多数浏览器可通过其证书设置接受该证书;在 macOS 上,你还可以将其添加到系统钥匙串中。

正在使用 Burp? 请转而遵循 Burp 的代理配置,然后使用 sectool mcp --burp 启动 sectool。

4. 连接你的代理

Claude Code:

claude mcp add --transport http sectool http://127.0.0.1:9119/mcp

Codex~/.codex/config.toml):

[mcp_servers.sectool]
url = "http://127.0.0.1:9119/mcp"

5. 开始协作

与代理一同制定测试计划并共同执行。代理可以查询代理历史记录、重放修改后的请求、爬取端点并测试带外交互,而你则负责处理基于浏览器的操作,例如认证、与 UI 交互并审查 UI。

服务器选项

代理后端

原生: 内置代理,具有线路级保真,并支持 HTTP/1.1、HTTP/2 和 WebSocket。其设计目标是在 MITM 测试方面与 Burp 一样强大。单个二进制文件即可提供 MCP 服务器、代理和 CLI——完全自包含,可在无头环境中使用。

Burp(可选): 如果你更倾向使用 GUI 来审查代理的操作,或者已经在运行 Burp,请从 BApp Store 安装 MCP 扩展,并确保 MCP 服务器运行在 http://127.0.0.1:9876/

选项说明
(默认)自动检测:先尝试 Burp MCP,不可用则回退到原生代理
--proxy-port 8080在指定端口强制使用原生代理
--burp强制使用 Burp MCP(不可用时失败)

会话选项

工作流

当代理在会话开始时调用 workflow 工具时,Sectool 会自动确定合适的工作流。你也可以提前指定工作流,以跳过此步骤并节省 token:

sectool mcp                        # Default: agent selects task type via workflow tool
sectool mcp --workflow explore     # Pre-set exploration mode
sectool mcp --workflow test-report # Pre-set validation mode
sectool mcp --workflow none        # No workflow instructions
sectool mcp --workflow multi       # Multiple agents share the server
模式说明
(默认)代理通过调用 workflow 工具选择任务类型,并接收协作指令
explore探索性安全测试;所有工具均可用
test-report验证特定漏洞报告;排除爬取工具
none无工作流指令,所有工具立即可用
multi适用于多个用户或代理共享服务器的情况;隐藏某些功能,以免一个代理令另一个代理产生混淆

工作流指令会引导代理进行协作测试,而不是试图完全自主地完成所有事情,或按部就班地引导你走流程却不增加任何价值。如果你对改进代理协作有任何想法,请提交 issue

备注

--notes 标志可启用 notes_savenotes_list 工具,用于保存与流量相关联的观察结果。默认处于禁用状态,以在短会话中保持最低上下文使用量。当你预期会有多个发现或对话压缩时,请启用它。

MCP 传输方式

服务器暴露两个端点:

  • /mcp - 可流式 HTTP(推荐)
  • /sse - SSE(旧版,适用于较旧的客户端)

CLI 使用示例

CLI 与代理共享状态,并提供一个人性化界面,用于审查、重放和编写脚本。所有 CLI 命令均映射到 MCP 工具,因此代理共享同一状态。

# Review what the proxy captured while you browsed
sectool proxy summary
sectool proxy list --host example.com
sectool proxy cookies --name session_id

# Crawl an app to discover endpoints and forms
sectool crawl create --url https://example.com
sectool crawl summary <session_id>

# Replay a captured request with modifications
sectool replay send --flow <flow_id> --add-header "X-Test: value"

# Set up out-of-band interaction testing and check for callbacks
sectool oast create
sectool oast poll <oast_id>
sectool oast get <event_id>

# Compare two flows, detect reflections, inspect JWTs
sectool diff <flow_a> <flow_b> --scope response
sectool reflected <flow_id>
sectool jwt <token>

# Export a flow, edit it offline, and resend
sectool proxy export <flow_id>
# ... edit ./sectool-requests/<flow_id>/request.http ...
sectool replay send --bundle <flow_id>

使用 sectool <command> --help 查看详细选项。

主要特性

  • 线路级保真代理 - HTTP/1.1 和 HTTP/2 MITM,保留头部顺序、大小写和协议异常
  • 重放与篡改 - 通过匹配/替换规则重写实时流量,或通过针对代理优化的 API 重发经修改的捕获请求
  • 流量对比 - 对两个流量进行结构化且感知内容类型的比较(JSON 路径级、统一文本、二进制大小),以便快速验证报告
  • JS 攻击面分析 - 从 JavaScript/HTML 包中提取端点、路由和密钥,然后将任意调用点展开为其可用请求
  • 反射检测 - 在多种编码变体中查找响应中反射的请求参数值,以揭示注入点
  • OAST - 通过 Interactsh 进行带外交互测试;创建域,轮询 DNS/HTTP/SMTP 回调
  • 重定向探测 - OAST 会话可返回 307 重定向以检测目标是否跟随重定向,对 SSRF 链和验证绕过很有用
  • 爬取 - 发现端点、表单和应用程序结构;以代理历史记录或 URL 作为种子
  • WebSocket 支持 - 对 WebSocket 消息进行帧级拦截、代理和匹配/替换
  • 工作流模式 - 针对特定任务的代理指导(explore、test-report),以提高协作质量并减少 token 浪费
  • 编码工具 - URL、Base64、HTML 编码/解码、哈希(MD5/SHA/HMAC)、JWT 检查
  • Burp Suite 集成 - 通过 Burp MCP 扩展提供可选的 GUI 前端;或使用原生代理完全无头运行

自动化扫描

将 sectool 与 sidenuclei 搭配使用,后者是一个第一方 sidecar,可针对你接触的每个端点运行 Nuclei。使用 --notes 启动 sectool,将 sidenuclei 附加到你的会话中,它便会使用真实捕获的请求扫描每个端点,因此测试将使用你实际的参数、cookie 和认证会话运行。发现结果会以 finding 备注的形式呈现,并链接到触发它们的流量,在你和你的代理专注于手动测试的同时,为你提供额外的覆盖范围。

自定义协议支持

除 HTTP 和 WebSocket 之外,sectool 还通过 sidecar 适配器模型支持自定义协议和二进制协议(通常为请求/响应)。编写适配器,使用我们的 sidecar API 进行连接和通信。Sidecar 流量会归入同一个统一的流量时间线,因此 flow_getdiff_flowreplay_send 等工具无需修改即可正常工作。适配器可以使用任何语言通过 JSON-RPC 2.0 API 编写,也可以使用 Go 编写,配合负责处理注册、规则缓存和流量发出的 SDK 客户端。sidecar SDK 与协议 对两者均有说明。

分类