☰
如何在 Strix 扫描中连接 Caido Desktop 接管代理流量并回放请求
2026/9/26 2:57:23 网站建设 项目流程

如何在 Strix 扫描中连接 Caido Desktop 接管代理流量并回放请求

【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix

Strix 扫描时,所有浏览器流量都经过沙箱内的 Caido 代理,agent 会对请求自动抓包、过滤和回放。但如果你想人工介入——在扫描进行中查看 agent 发出的每一条 HTTP/HTTPS 请求、手动修改并回放、或对 agent 报告的结果做验证——可以把宿主机上的 Caido Desktop 连接到沙箱里的 Caido 实例。本文基于 proxy 文档 和 Quick Start,给出从启动扫描、在 Caido Desktop 接入到回放请求的完整路径。

前提条件

  • Docker 处于运行状态(Strix 的沙箱是 Kali Linux 基础的 Docker 容器);
  • 已配置任一受支持的 LLM provider 的 API key;
  • 已安装 Strix,两种官方方式任选其一:
curl -sSL https://strix.ai/install | bash

或:

pipx install strix-agent
  • 宿主机上已安装 Caido Desktop(Strix 只负责把沙箱内的 Caido 代理暴露到宿主机,Desktop 客户端需要你自己安装);
  • 只对你拥有或已获书面授权的系统执行扫描。

启动扫描并找到 Caido 接入地址

先设置 LLM,再像平时一样启动扫描。Caido 地址是在交互模式(TUI)下才展示的,所以不要用--non-interactive跑:

export STRIX_LLM="openrouter/z-ai/glm-5.3" export LLM_API_KEY="your-api-key" strix --target ./your-app

your-app替换为你要测的目标(本地目录、URL 或仓库地址均可)。首次运行会自动拉取 Docker 沙箱镜像。

沙箱启动后,在 TUI 侧边栏的 stats 面板里找到Caido这一项,点击即可复制地址(文档示例为localhost:52341,实际端口以你这次运行显示的值为准)。

在 Caido Desktop 中连接实例

按 proxy 文档给出的顺序操作:

  1. 像往常一样启动一次 Strix 扫描;
  2. 在侧边栏 stats 面板找到 Caido URL(形如localhost:52341);
  3. 在 Caido Desktop 中打开该 URL;
  4. 点击Continue as guest接入这个实例。

接入成功的标志:你能在 Caido Desktop 里实时浏览 agent 正在发出的全部 HTTP/HTTPS 请求。连接建立后,你可以做这些事(均来自 proxy 文档的说明):

  • Inspect traffic— 实时浏览 agent 发出的所有 HTTP/HTTPS 请求;
  • Replay requests— 取任意一条已捕获请求,加自己的修改后重发;
  • Intercept and modify— 请求在途时暂停、编辑再转发;
  • Explore the sitemap— 查看 agent 已发现的攻击面树;
  • Manual testing— 对 agent 报告的结果做人工复测,或探索 agent 没到达的区域。

回放请求:在 Caido Desktop 中手动改包重发

Caido 捕获的每一条请求都可以带修改回放。Strix 文档列出的典型改法:

  • 改路径参数(测 IDOR);
  • 改请求体(测注入);
  • 增删请求头(测认证绕过);
  • 改 Cookie(测会话问题)。

操作即“浏览 → 捕获 → 修改 → 测试”:在流量列表里选中目标请求,编辑 URL/headers/body/cookies,然后 resend,观察响应状态码和内容的变化。

让 shell 流量也进入代理

如果想在沙箱里用curl发起一次性请求并让它同样被捕获、可回放,直接用 shell 工具即可——沙箱的HTTP_PROXY环境变量已把流量路由到 Caido,所以curl的请求会出现在list_requests里,之后就能用repeat_request回放。

脚本化回放:沙箱内的 caido_api

除手动操作外,agent(或你让 agent 写的 Python 脚本)可以调用镜像内置的caido_api模块做脚本化测试。proxy 文档给出的示例脚本(文档示例,req_123是占位请求 ID,实际应替换为list_requests返回的 ID):

import asyncio from caido_api import list_requests, repeat_request, view_request async def main(): # List recent POST requests post_requests = await list_requests( httpql_filter='req.method.eq:"POST"', first=20, ) # View a specific request request_details = await view_request("req_123", part="request") # Replay with modified payload response = await repeat_request( "req_123", modifications={"body": '{"user_id": "admin"}'}, ) print(response["status"], request_details is not None, len(post_requests.edges)) asyncio.run(main())

文档列出的可用函数:

函数用途
list_requests()用 HTTPQL 过滤查询已捕获流量
view_request()获取完整请求/响应详情
repeat_request()带修改回放一条请求
list_sitemap()浏览发现面的请求树视图
view_sitemap_entry()查看单个 sitemap 条目及其相关请求
scope_rules()管理代理 scope(allowlist/denylist)

repeat_request回放的请求继承原始请求的全部内容(headers、cookies、认证、method、URL),只覆盖modifications里指定的字段。modifications支持的键及其含义见 tools.py 的参数说明:url(替换 URL)、params(新增/更新查询参数)、headers(新增/更新请求头)、body(整体替换请求体)、cookies(新增/更新 Cookie)。

HTTPQL 过滤语法有两条容易踩的坑(来自 tools.py 中的说明):HTTPQL 没有NOT操作符,要用否定形式如ncont、nregex(例如req.path.ncont:"/static");字符串值必须加引号,整数值不能加引号,resp.code.eq:200正确,resp.code.eq:"200"会解析报错。

用 Scope 过滤流量

扫描目标较多时,用 scope 把流量限制到相关域名。proxy 文档给出的示例:

Allowlist: ["api.example.com", "*.example.com"] Denylist: ["*.gif", "*.jpg", "*.png", "*.css", "*.js"]

规则语义(见 tools.py):空 allowlist 表示放行所有域名;denylist 始终优先于 allowlist。scope 有唯一 id,可作为list_requests的scope_id参数使用。

边界与限制

  • Caido URL 是每次运行动态暴露到宿主机的地址,示例值localhost:52341只作格式参考,以 TUI 侧边栏实际显示为准;
  • 接入依赖交互模式(TUI 侧边栏展示 URL),-nheadless 模式下没有这个入口;
  • 回放结果取决于目标环境:repeat_request返回的status为"DONE"才表示请求发出完成(文档 IDOR 示例脚本中以此判断回放完成),状态码本身要看目标响应;
  • 沙箱会真实执行请求,务必遵守授权范围。

完成接入与回放后,你可以在 Caido Desktop 里继续用 sitemap 探索 agent 尚未覆盖的攻击面,或按 Scan Modes 调整下一次扫描的深度。

【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询