第 2 章 · 02 扫描模式 本节摘要:Strix 提供三种扫描模式来平衡速度与彻底性—— (快速,数分钟)、 (标准,30 分钟到 1 小时)、 (深度,14 小时,默认)。但模式不只是「时长」的差异:它们对应着 Strix 内置的三套测试方法论知识包(注入 AI agent 提示词),决定了代理如何侦察、按什么优先级测试、跳过什么、何时链式利用。本节合并讲透三种模式的官方定义与背后的方法论,帮你按场景选对模式。 内容来源:原项目文档 与知识包 ,汉化合并并套用体系化模板。 ⚠️ 仅限授权测试:所有扫描仅用于你自己的应用或有书面授权的目标。 学习目标 阅读完本节,你应当能够: 区分三种扫描模式的时长与适用场景。 说明 与 在白盒行为上的差异(源码感知分流)。
本节摘要:Strix 提供三种扫描模式来平衡速度与彻底性——
quick(快速,数分钟)、standard(标准,30 分钟到 1 小时)、deep(深度,1~4 小时,默认)。但模式不只是「时长」的差异:它们对应着 Strix 内置的三套测试方法论知识包(注入 AI agent 提示词),决定了代理如何侦察、按什么优先级测试、跳过什么、何时链式利用。本节合并讲透三种模式的官方定义与背后的方法论,帮你按场景选对模式。
内容来源:原项目文档
docs/usage/scan-modes.mdx与知识包strix/skills/scan_modes/{quick,standard,deep}.md,汉化合并并套用体系化模板。
⚠️ 仅限授权测试:所有扫描仅用于你自己的应用或有书面授权的目标。
阅读完本节,你应当能够:
standard 与 deep 在白盒行为上的差异(源码感知分流)。quick 模式的高影响优先级(认证绕过 → 访问控制 → RCE → SQLi → SSRF → 暴露秘密)。standard 模式的五阶段方法论(侦察 → 业务逻辑 → 系统化测试 → 利用 → 报告)。deep 模式的六阶段 + 代理策略(穷尽侦察、漏洞链式、持久测试、分级子代理)。strix --target ./app --scan-mode quick # 或 standard / deep
| 模式 | 时长 | 适用场景 | 白盒行为 |
|---|---|---|---|
quick |
数分钟 | CI/CD、PR 校验、快速冒烟 | 聚焦最近变更 |
standard |
30 分钟~1 小时 | 例行安全评审、发版前校验、开发里程碑 | 源码感知映射 + 静态分流,优先动态利用验证路径 |
deep |
1~4 小时(视复杂度) | 全面安全审计、发版前评审、关键应用评估 | 广源码分流(semgrep、AST 结构搜索、秘密、供应链检查)后系统化动态验证 |
💡
deep是默认模式。它探索边界情况、链式漏洞与复杂攻击路径。如果你不显式指定--scan-mode,跑的就是 deep。
quick 是「时间盒评估」,聚焦高影响漏洞,优先广度而非深度。它的 mindset 是「像时间紧迫的赏金猎人冲快速胜利」。
白盒(有源码):
semgrep,再针对性 sg 查询)sg 或 Tree-sitter),避免跳过结构映射gitleaks、trufflehog、trivy fs)黑盒(无源码):
快速扫描跳过:穷尽子域枚举、全目录爆破、低严重度信息泄露、无可用 PoC 的理论问题。
用最小 PoC 确认可利用性,展示真实影响而非理论风险。发现强原语(认证弱点、注入点、内部访问)时,立即尝试一次高影响轴转,把低上下文的「可能」变成到达特权动作或敏感数据的具体利用序列。
💡 quick 的取舍:牺牲深度换速度——跳过穷尽枚举,只测高价值攻击面上的明显问题。适合「快速反馈是否有关键漏洞」的 CI 场景。
standard 是「结构化方法论的平衡评估」。彻底覆盖但不穷尽深度。它的 mindset 是「系统化、有条理,边测边记,验证一切」。
白盒:映射代码库结构(模块、入口、路由);先跑 semgrep 一过分流以优先 risky 流;跑至少一次 AST 结构映射过程(sg 和/或 Tree-sitter),再用输出做路由、sink、信任边界映射;识别架构模式(MVC、微服务、单体);追踪输入向量(表单、API、文件上传、头部、cookie);审查认证授权流程;分析数据库交互与 ORM;用 trivy fs、gitleaks、trufflehog 查依赖与仓库风险;理解数据模型与敏感数据位置。
黑盒:彻底爬取应用,与每个功能交互;枚举端点、参数、功能;指纹技术栈;映射用户角色与访问级别;用代理抓流量理解请求/响应模式。
测试漏洞前先理解应用:关键流程(支付、注册、数据访问、管理功能)、角色边界(哪些动作限制给哪些用户)、数据访问规则(哪些数据应跨用户隔离)、状态转换(订单生命周期、账户状态变更)、信任边界(特权或敏感数据流向何处)。
针对每个攻击面有条理地测,为不同区域派生聚焦子代理:
每个发现都要有可用 PoC;展示实际影响而非理论风险;链式漏洞展示最大严重度;文档化从入口到影响的完整攻击路径;通过 exec_command 用 Python 脚本做复杂利用开发。报告含可复现步骤、基于可利用性与业务影响的严重度、修复建议、需进一步调查的区域。
💡 standard 的链式心法:始终问「如果我能做 X,接下来能做什么?」持续轴转直到达到最大特权或数据暴露;偏好完整端到端路径(入口 → 轴转 → 特权动作/数据)而非孤立发现。
deep 是「最大覆盖、最大深度的穷尽评估」。目标是发现别人错过的东西。它的 mindset 是「无情、有创意、耐心、彻底、持久」。
白盒:映射仓库里每个文件、模块、代码路径;从广源码分流开始(semgrep、ast-grep、gitleaks、trufflehog、trivy fs)驱动深度评审;每仓库至少跑一次结构 AST 过程并存储产物复用;用语法感知解析(Tree-sitter)提升符号/路由/sink 提取质量;追踪从 HTTP 处理器到数据库查询的所有入口;文档化所有认证机制;映射授权检查与访问控制模型;识别所有外部服务集成;分析配置中的秘密与错误配置;审查数据库 schema 与数据关系;映射后台作业、cron、异步处理;识别所有序列化/反序列化点;审查文件处理(上传/下载/处理);理解部署模型;对所有依赖版本查 CVE/错误配置(快速 CVE 查询用 vulnx search <query>)。
黑盒:多源多工具穷尽子域枚举;全端口扫描;多词表完整内容发现;全资产技术指纹;经文档/JavaScript 分析/fuzzing 做 API 发现;识别所有参数(含隐藏与罕用);用不同账户类型映射所有用户角色;文档化限流、WAF 规则、安全控制。
创建应用的完整故事板:用户流程、状态机、信任边界、不变量、隐含假设、多步攻击面、第三方集成。以每种用户类型大量使用应用,理解完整数据生命周期。
用每种适用技术测每个输入向量:多种注入类型(SQL/NoSQL/LDAP/XPath/命令/模板);编码绕过(双重编码、unicode、null 字节);边界条件与类型混淆;大 payload 与缓冲区问题。认证会话:穷尽暴力破解保护、session 固定/劫持/预测、JWT/token 操纵、OAuth 流滥用、密码重置漏洞、MFA 绕过、账户枚举。访问控制:每个端点的横向纵向测试、参数篡改、强制浏览、HTTP 方法篡改、状态变更后的访问控制。文件操作:穷尽上传绕过(扩展名/Content-Type/魔术字节)、所有文件参数的路径穿越、经文件包含的 SSRF、所有 XML 解析点的 XXE。业务逻辑:所有状态变更操作的竞争条件、每个多步流程的工作流绕过、交易中的价格/数量操纵、并行执行攻击、TOCTOU。高级技术:HTTP 请求走私、缓存毒化与欺骗、子域接管、原型污染、CORS 错误配置、WebSocket、GraphQL 专用攻击。
单个 bug 是起点,链式追求最大影响:把信息泄露与访问控制绕过组合;链 SSRF 到达内部服务;用低严重度发现使能高影响攻击;构建自动化工具错过的多步攻击路径;跨组件边界(用户 → 管理员、外部 → 内部、读 → 写、单租户 → 跨租户)。
链式原则:把每个发现当轴转点(「这接下来解锁什么?」);持续到最大特权/最大数据暴露/最大控制;偏好端到端利用路径;经执行完整序列验证链(工作流用代理 + 浏览器,自动化用 Python);发现轴转时派生聚焦代理在下一组件继续链。
初次尝试失败时:研究技术专用绕过;试替代利用技术;测边界情况与异常功能;用不同客户端上下文;用其他发现的新信息回顾;考虑时间型与盲利用;找需深度应用理解的逻辑缺陷。
代理策略:侦察后,分层分解应用——组件级(认证系统、支付网关、用户档案、管理面板)、功能级(登录表单、注册 API、密码重置)、漏洞级(SQLi 代理、XSS 代理、认证绕过代理)。每级派生专家代理,水平扩展到最大并行——不要让单个代理承担多种漏洞类型,每个代理专注一个特定区域或漏洞类型,形成覆盖每个角度的大规模并行群。
⚠️ 三种模式共享同一套底层工具与漏洞知识(第 5~6 章的 25 类漏洞),差异在于覆盖广度、测试深度、链式与否、子代理规模。模式越深,越接近真实渗透测试员的工作方式。
| 场景 | 推荐模式 | 理由 |
|---|---|---|
| 每个 PR | quick |
聚焦变更,数分钟,不拖慢迭代 |
| 周度扫描 | standard |
平衡覆盖与耗时,例行评审 |
| 重大发版前 | deep |
穷尽审计,捕捉边界与链式 |
| 漏洞赏金 | deep |
找别人错过的,链式追求最大影响 |
💡 实践建议:CI/CD 用
quick+--scope-mode diff(只扫变更);定期(如每周)用standard全量扫;发版前或关键资产用deep。这样在速度与彻底性间取得平衡。
semgrep/AST/秘密/供应链)后系统化动态验证。下一节,我们看自定义指令——如何用
--instruction给 Strix 凭据、范围、排除项,让它测得更准。