SQL Injection Testing 是一个面向 Web 应用 SQL 注入漏洞评估的技能,来源于 davila7/claude-code-templates。它用于系统性地检测和利用 SQL 注入漏洞,覆盖 in-band(联合查询、报错注入)、blind(布尔盲注、时间盲注)和 out-of-band(带外)三类攻击向量,以评估应用的安全状况。
用途方面,该技能适用于用户要求测试 SQL 注入漏洞、执行 SQLi 攻击、使用 SQL 注入绕过认证等场景。它帮助识别数据库安全缺陷、演示利用技术并验证输入净化机制。
主要能力分为四个阶段。阶段一是检测与侦察:定位可注入参数(URL 参数、表单字段、Cookie、HTTP 头),通过插入特殊字符(单引号、双引号、注释符、分号、括号)触发错误,并以逻辑测试(如 OR 1=1-- 与 AND 1=2--)确认注入点。阶段二是利用技术:UNION 注入通过 ORDER BY 推断列数并提取数据;报错注入利用 MYSQL 的 XPATH、MSSQL 的 CONVERT、PostgreSQL 的 CAST 报错泄露信息;布尔盲注通过应用行为差异逐字符推断;时间盲注利用 SLEEP、WAITFOR DELAY、pg_sleep 确认;带外注入通过 DNS、HTTP 请求泄露数据。阶段三是认证绕过:针对登录表单构造如 admin'--、' OR '1'='1 等 payload,并展示查询变换示例。阶段四是过滤器绕过:涉及字符编码(URL 编码、双重 URL 编码、Unicode、十六进制字符串)、空白绕过(注释替代、制表符、换行)和关键字绕过(大小写变化、内联注释、双写、空字节注入)。
技能还提供快速参考,包括检测测试序列、数据库指纹识别(MySQL、MSSQL、PostgreSQL、Oracle 的版本查询)、information_schema 查询以及常用 payload 列表。示例部分给出电商产品页 SQLi、盲注时间提取和登录绕过三个场景。故障排查涵盖无错误信息、UNION 失败、WAF 拦截、payload 不执行、时间盲注不一致等情形。
使用方式上,需要目标 Web 应用 URL、Burp Suite 或等效代理、SQLMap 安装、启用开发者工具的浏览器;技术要求包括 SQL 语法(MySQL、MSSQL、PostgreSQL、Oracle)、HTTP 请求响应周期和数据库结构知识;法律前提包括书面授权、明确目标和参数范围、应急联系程序和数据处置协议。输出交付物包括带严重性评级的注入漏洞报告、提取的数据库 schema 与表结构、认证绕过概念验证、带代码示例的修复建议,以及截图、HTTP 日志、脱敏数据库导出和 payload 文档。
适用场景为经授权的渗透测试、应用安全评估和输入净化机制验证。限制与约束方面,技能明确规定:不得在未获明确授权时执行破坏性查询(DROP、DELETE、TRUNCATE);数据提取应限于概念验证数量;避免通过资源密集型查询造成拒绝服务;一旦检测到含真实用户数据的生产数据库应立即停止;WAF/IPS 可能拦截常见 payload;参数化查询可防止标准注入;部分盲注需要大量请求,存在速率限制问题;二阶注入需要理解数据流。此外,测试前必须有书面范围协议,提取数据须按数据保护要求处置,关键漏洞须通过约定渠道立即报告,不得访问超出范围的数据。