用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/cdxiaodong/cain-agent --skill sqli命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
XSS 测试技能 —— 面向真实业务系统,区分渲染上下文(HTML/属性/JS/CSS/URL),覆盖存储型/反射型/DOM 型,对抗 CSP 与输入过滤,产出可复现 PoC
基于 SOC 职业分类
正在显示 SKILL.md
| name | sqli |
| description | SQL 注入测试技能 —— 面向真实业务系统,覆盖参数边界、布尔/时间盲注、WAF 绕过与误报规避,产出可复现 PoC 与证据链 |
| phase | test |
| severity_focus | high |
定位:面向真实授权业务系统的注入验证,不是 CTF writeup 的 payload 罗列。重点在「参数边界判定、注入点定位、响应差异建模、误报排除」,而非追求一个 flag。
满足以下任一信号即应进入本技能(侦察阶段产出 endpoints.json 已标注候选注入点优先级):
id / q / search / sort / 分页 page / offset / 筛选器 filter),且响应体随参数值语义变化(列表条数、字段、排序顺序)。Cookie 中的会话/偏好字段、X-Forwarded-For、Referer、User-Agent(后端记日志时常拼入 SQL)。order_by / group_by 字段名注入、raw() / extra() 逃逸是高发点)。assets.json 的数据流追踪判断是否值得测。对齐 DESIGN §3.1:L1 探测(快速排除明显不存在)→ L2 验证(确立可复现差异)→ L3 绕过(对抗真实 WAF / 风控)。每层只做上一层成立后才推进的事,避免对每个参数都跑完整 payload 表烧 token。
目标:用最小请求量判定「该参数是否可能受 SQL 语法影响」,不追求确认漏洞。
真值基准 与 AND 1=1 / AND 1=2(数字型)或 ' AND '1'='1 / ' AND '1'='2(字符型),比较响应指纹(状态码、Content-Length、关键 DOM 节点数、耗时)。; WAITFOR DELAY '0:0:3' --(MSSQL)/ AND SLEEP(3)(MySQL)/ pg_sleep(3)(PG)/ DBMS_PIPE.RECEIVE_MESSAGE('a',3)(Oracle),以响应延迟相对基准的稳定偏移(非单次抖动)为信号。' / " / ) / \ 单字符,观察是否触发数据库原生错误回显、HTTP 500、或响应结构塌缩(ORM 异常常表现为 500 + 框架默认错误页)。L1 的产出是「候选参数 + 初判数据库指纹 + 注入类型假设」,写入
findings.json的hypothesis字段,不直接定级。
目标:把 L1 假设变成可复现、可向他人演示的差异证据,禁止仅凭响应码或单次延迟下结论。
sleep;单次 3s 不能定论(GC、慢查询同样造成延迟)。ORDER BY n 二分定位列数,再取可见回显列;报错型优先用函数回显(如 MySQL updatexml / PG CAST 异常 / MSSQL convert),避免堆叠多请求。@@version / version() / banner from v$version)一起取,把「假设的库」收敛为「确认的库」,定级与后续 payload 都依赖它。目标:在目标存在 WAF / 风控 / 输入过滤时,验证注入是否仍可达——这才是实战与靶场的分水岭。
SELECT / UNION / AND / 空格 / 注释符,记录哪些被拦截(403 / WAF 页 / 静默丢弃),建立「过滤面」清单,而非盲目堆 payload 字典。/**/、URL 双重编码、%0b 等空白替代、等价函数(SUBSTRING↔MID、ASCII↔ORD);变形以「绕过该特定 WAF」为目标,逐个验证而非组合爆破。AND 被禁用 && / BETWEEN;空格被禁用括号语法 UNION(SELECT...);引号被转义时尝试宽字节(GBK 场景 %bf%27)或 CHAR() 构造。L3 成立是定级上调的依据(绕过防护 = 利用链真实可达),但产出仍须 PoC + 证据,不得凭「能绕过」直接定级。
什么才算确认 SQLi(缺一不可,禁止仅凭响应码/单次现象下结论):
id=1 vs id=1 AND 1=2),证明差异由 SQL 语义而非业务逻辑引起。information_schema / sysobjects 可访问性),避免「疑似注入」的模糊定级。scope.yaml in_scope 且有书面授权的目标上运行;ScopeGuardHook 拦截即停,不尝试旁路自身防护。DROP / UPDATE / DELETE / INSERT / 写文件 / 执行系统命令等破坏性或持久化操作——证明可读性已足以定级,写操作不提供额外安全价值且违反只读原则。findings.json / 日志 / 报告。