
strix sqlmap 技能深度解析AI 渗透测试中 SQL 注入自动化的 CLI 作战手册【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix在 strix/skills/tooling/sqlmap.md 中strix 为它的 AI 代理内置了一份高度结构化的 sqlmap 命令行手册CLI Playbook覆盖目标语法、非交互执行、验证与枚举工作流以及失败恢复策略。本文以该技能文件为主体结合 strix 的技能加载机制strix/skills/init.py、系统提示词渲染链路strix/agents/prompt.py和 Kali 沙箱环境containers/Dockerfile完整拆解这份 Playbook 的每个命令、规则与恢复策略帮助读者理解“代理安全自动化”这一设计思路并可直接复用其中的 sqlmap 操作规范。一、这是一份什么文档strix 的 tooling 技能sqlmap Playbook 是 strix “技能Skills”体系中的一个成员。技能是带 YAML frontmatter 的 Markdown 知识包用于给 AI 代理注入超出通用知识的专业能力。strix/skills/README.md 将技能分为 vulnerabilities、frameworks、technologies、protocols、tooling、cloud、reconnaissance、custom 等类别其中/tooling类别专门收纳核心沙箱命令行工具的作战手册sqlmap 与 nmap、nuclei、httpx、ffuf、subfinder、naabu、katana 并列。该文件的 frontmatter 定义了元数据--- name: sqlmap description: sqlmap target syntax, non-interactive execution, and common validation/enumeration workflows. ---技能文件在运行时的装载路径有两条均可从源码确认随子代理创建时注入系统提示词根代理通过create_agent派发专项子代理时传入skills[...]工厂函数 strix/agents/factory.py 中的build_strix_agent会调用 strix/agents/prompt.py 的render_system_prompt后者经_resolve_skills将请求的技能与固定技能scan_modes/mode、tooling/agent_browser、tooling/python、analysis/counterevidence、analysis/severity_calibration等合并去重再通过 strix/skills/init.py 的load_skills读出 Markdown 正文frontmatter 被剥离作为模板变量渲染进system_prompt.jinja。每个代理最多装载 5 个技能validate_requested_skills会对超量或未知名称返回模型可读的错误信息。运行中按需加载load_skill工具strix/tools/load_skill/tool.py允许代理在即将测试某类目标、而该技能尚未预载时主动把技能正文拉进对话作为参考材料——正文的 docstring 明确建议“在做动作之前先 load 精确语法/工作流/载荷指引”。系统提示词strix/agents/prompts/system_prompt.jinja也要求当你即将测试一个技能未内联的漏洞类型、协议、工具或框架时先load_skill再行动而不是凭记忆猜测工具语法。此外strix/skills/init.py 提供register_skill_dir机制用户可注册一个与内置布局相同root/category/name.md的目录后注册的目录优先级更高同名技能会被覆盖。这意味着这份 sqlmap 手册既可以直接复制改造为自己的团队规范也可以在不改动包的前提下新增私有变体。二、标准语法与高信号参数Playbook 给出的规范调用形式为sqlmap -u target_url_with_params [options]它精选了一批对自动化最有信息量的 flag原文全部保留参数作用-u, --url url指定目标 URL-r request_file以原始 HTTP 请求文件作为输入-p param只测试指定参数可多个--batch非交互模式不再弹确认提示--level 1-5测试深度--risk 1-3载荷风险档位--threads n并发线程数--technique letters限定注入技术布尔盲注、联合查询等字母组合--forms解析目标页面中的表单并一并测试--cookie cookie/--headers headers携带认证上下文--timeout seconds/--retries n传输层稳定性控制--tamper scriptsWAF/输入过滤绕过脚本--random-agent随机化 User-Agent--ignore-proxy忽略已配置的代理--dbs、-D db --tables、-D db -T table --columns、-D db -T table -C cols --dump数据库 → 表 → 列 → 数据逐级枚举--flush-session清除缓存的扫描状态原文档还指向 sqlmap 官方 usage Wiki 作为权威参考在 strix 的沙箱中代理不需要人工查阅文档因为该 Playbook 本身就被内联进了系统提示词docs/advanced/skills.mdx 中的 Tooling 类别表将 sqlmap 描述为“SQLi workflow for enumeration and controlled extraction”。三、面向自动化的“代理安全基线”Playbook 的核心贡献是给自动化场景定了一条安全基线命令sqlmap -u https://target.tld/item?id1 -p id --batch --level 2 --risk 1 --threads 5 --timeout 10 --retries 1 --random-agent这条命令的设计意图可从参数组合读出--batch保证无挂起的交互提示-p id把攻击面收窄到已知参数--level 2 --risk 1是保守探测档避免一上来就使用高副作用载荷--threads 5提供适度并发--timeout 10 --retries 1限制慢响应拖垮整个扫描--random-agent降低指纹特征。它适合作为 Agent 首次接触一个疑似注入点时的默认姿势——先低档验证再按需升级。四、常用工作流从基线到定向数据提取Playbook 给出六条可直接复制的模式命令覆盖了从“是否存在注入”到“提取指定列”的完整链条1. 基线注入检查GET 参数sqlmap -u https://target.tld/item?id1 -p id --batch --level 2 --risk 1 --threads 52. POST 参数测试sqlmap -u https://target.tld/login --data useradminpasstest -p pass --batch --level 2 --risk 1注意这里只测pass参数-p pass而不是同时轰炸两个字段——与“尽量显式指定-p”的正确性规则一致。3. 表单驱动测试sqlmap -u https://target.tld/login --forms --batch --level 2 --risk 1 --random-agent当页面含多个表单、或参数在响应体中才可见时--forms让 sqlmap 自动解析并遍历。4. 枚举数据库sqlmap -u https://target.tld/item?id1 -p id --batch --dbs5. 枚举指定库的表sqlmap -u https://target.tld/item?id1 -p id --batch -D appdb --tables6. 定向转储指定列sqlmap -u https://target.tld/item?id1 -p id --batch -D appdb -T users -C id,email,role --dump-D/-T/-C的逐级递进体现了 Playbook 的一条使用规则优先窄提取narrow extraction而非 dump-first 的宽泛转储。对渗透测试代理而言这条规则同时是效率约束更快拿到证明所需的最小证据和副作用约束对生产库的读取面越小越安全。五、正确性规则、使用规则与失败恢复Playbook 用两组短规则约束自动化行为这些规则本身就是针对“AI 代理容易犯的错误”写的关键正确性规则Critical correctness rules自动化中始终带--batch避免进程停在交互式提示上——对沙箱中的 Agent 来说这等于挂死尽可能用-p显式声明目标参数缩小测试面请求或配置文件变更后重测时用--flush-session清掉缓存的扫描状态防止旧会话污染新结果从保守档起步--level 1-2、--risk 1确有需要在再逐步升级。使用规则Usage rules认证上下文--cookie/--headers要与人工验证时的状态保持一致——即代理先用代理工具或脚本确认登录态再把同一套 Cookie/Header 交给 sqlmap避免“人看到的页面”和“sqlmap 看到的页面”不一致窄提取优先于宽转储正常执行期间不要使用-h/--help除非确有必要防止无意义的输出污染与额外请求。失败恢复Failure recovery三种典型情形与对策情形恢复动作结果与人工测试冲突加--flush-session重跑被过滤/WAF 拦截调低--threads并测试有针对性的--tamper链初始检测漏掉疑似注入点逐步上调--level/--risk最后Playbook 给代理留了一条“不确定时的兜底”通过 web_search 工具查询 sqlmap 官方 usage Wiki原文给出的查询模板为site:github.com/sqlmapproject/sqlmap/wiki/usage sqlmap flag。这与 strix 系统提示词中“持续用 web_search 研究载荷与绕过技术、并在喷雾中刷新载荷集”的效率策略strix/agents/prompts/system_prompt.jinja相互印证——技能手册是静态先验web 检索是动态更新二者互补。六、这份手册在 strix 中的真实运行环境理解该 Playbook 的约束为何长这样需要看它的执行环境sqlmap 是沙箱的预装工具。containers/Dockerfile 基于 Kali 镜像apt-get install列表中直接包含sqlmap与 nuclei、subfinder、naabu、ffuf 同批安装见第 55 行附近docs/tools/sandbox.mdx 也把 SQLMap 列为沙箱自带工具之一。因此代理无需临时安装直接执行即可。交互式工具必须走 TTY 会话。系统提示词明确要求sqlmap 这类可能挂起等待输入的工具若要以交互式方式驱动例如write_stdin发送响应或 Ctrl-C必须先用exec_command(cmd..., ttytrue)启动再用write_stdin写入否则会得到 “stdin is not available” 的失败。这也解释了 Playbook 为什么把--batch列为自动化第一规则——非 TTY 的exec_command环境里任何交互提示都会让命令空转。sqlmap 是被“优先采用”的既有扫描器。系统提示词在 EFFICIENCY TACTICS 中写道优先使用 ffuf、sqlmap、nuclei 等成熟模糊器/扫描器脚本主要用于在其外围做协调与验证而不是无理由地重写替代strix/agents/prompts/system_prompt.jinja 中相关条目。工具清单部分也把 sqlmap 归入“SQL 注入检测/利用”一类。与代理工具协同。同一提示词建议“使用既有模糊器/扫描器时配合代理proxy工具观察流量”。strix 的 Caido 代理工具list_requests、view_request、repeat_request等见 strix/tools/proxy/tools.py 在 strix/agents/factory.py 中的注册让代理可以在 sqlmap 探测前后核对真实请求与响应用于交叉验证 Playbook 中“结果冲突时用--flush-session重跑”之前的判断。docs/tools/terminal.mdx 中的最小示例sqlmap -u https://example.com/page?id1则展示了不带 Playbook 时的裸用法——对照之下可以看出技能手册的价值在于把“能跑”的命令升级为“在无人值守的 AI 代理里安全地跑”的命令。七、如何复用与扩展这套规范对想在自研 Agent 中复刻该实践的团队strix 的实现给出了三个可借鉴点手册即提示词技能文件放在strix/skills/category/name.md如 strix/skills/tooling/sqlmap.md由load_skills读取正文注入提示词或由load_skill工具按需拉取strix/tools/load_skill/tool.py。frontmatter 仅要求name与description两个字段解析逻辑见 strix/skills/init.py 的_parse_skill_content。同名覆盖机制通过register_skill_dir注册外部目录即可覆盖内置的 sqlmap 手册最新注册的目录优先级最高适合按团队风控要求改写 level/risk 上限或追加内网专用 tamper 链而不必改动包内文件。规则面向失败模式编写Playbook 的每条规则几乎都对应一类自动化故障挂起的提示、脏会话、认证态漂移、WAF 拦截、漏检。编写自己的工具手册时可以沿用“标准语法 → 安全基线 → 常用模式 → 正确性规则 → 使用规则 → 失败恢复 → 不确定时的检索兜底”这一骨架。小结strix/skills/tooling/sqlmap.md 虽然篇幅不长却是一份完整的“代理时代工具使用规范”以--batch、显式-p、保守 level/risk 起点的自动化基线为核心配以从基线检测到窄提取的六条命令模式和三种失败恢复路径并明确与 sqlmap 官方文档、web_search 兜底的衔接方式。结合 strix 的技能加载源码strix/skills/init.py、strix/agents/prompt.py、Kali 沙箱预装事实containers/Dockerfile与系统提示词对 TTY 交互、成熟扫描器优先的要求strix/agents/prompts/system_prompt.jinja可以看出该手册的每一个约束都服务于同一个目标让 sqlmap 在无人值守的 AI 渗透流程中既高效又可审计。【免费下载链接】strixOpen-source AI penetration testing tool to find and fix your app’s vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/strix/strix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考