用途
SQL Injection Testing 用于对 Web 应用执行全面的 SQL 注入漏洞评估,以识别数据库安全缺陷、演示利用技术并验证输入净化机制。该技能支持跨带内、盲注和带外(OOB)攻击向量对 SQL 注入漏洞进行系统化检测与利用,从而评估应用安全态势。
主要能力
- 检测与侦察:识别可注入参数(URL 参数、表单字段、Cookie 值、HTTP 头),通过特殊字符触发错误响应,使用逻辑测试载荷验证布尔型漏洞。
- 利用技术:支持 UNION 联合查询提取、基于错误的提取、盲注布尔型提取、基于时间的盲注提取以及带外(OOB)数据外带。
- 认证绕过:构造载荷绕过登录表单的凭据验证,并支持用户名枚举。
- 过滤绕过:提供字符编码绕过、空白符绕过和关键字绕过技术,用于规避 WAF/IPS 或黑名单过滤。
- 数据库指纹识别:针对 MySQL、MSSQL、PostgreSQL、Oracle 的版本查询与信息模式查询。
使用方式
该技能以命令行与手动测试流程为主,核心工作流分为四个阶段:
- 阶段一:检测与侦察——定位用户可控输入点,插入单引号、双引号、注释序列、分号、括号等特殊字符,监控数据库错误消息、应用行为变化、HTTP 500 错误及响应内容或长度变化;使用
OR 1=1--与AND 1=2--对比响应确认注入能力。 - 阶段二:利用技术——使用
ORDER BY确定列数,UNION SELECT NULL探测可显示列,再提取数据;或使用错误型、盲注布尔型、时间型及 OOB 技术。 - 阶段三:认证绕过——使用
admin'--、' OR '1'='1等载荷绕过登录验证。 - 阶段四:过滤绕过——使用 URL 编码、双重 URL 编码、Unicode 替代、十六进制字符串、注释替换空白、大小写变化、内联注释、双写和空字节注入等技巧。
技能提供快速参考,包括检测测试序列、数据库指纹识别查询、信息模式查询和常见载荷速查表。
适用场景
- 对具有可注入参数的 Web 应用进行渗透测试。
- 评估应用输入净化机制与数据库安全态势。
- 演示 SQL 注入漏洞的利用方式与影响。
- 验证认证机制是否存在 SQL 注入绕过风险。
限制
操作边界:未经明确授权不得执行破坏性查询(DROP、DELETE、TRUNCATE);数据提取限制在概念验证数量;避免通过资源密集型查询造成拒绝服务;检测到含真实用户数据的生产数据库时立即停止。
技术限制:WAF/IPS 可能阻止常见载荷,需要规避技术;参数化查询可防止标准注入;部分盲注需要大量请求(存在速率限制问题);二阶注入需要理解数据流。
法律与伦理要求:测试前必须存在书面范围协议;按数据保护要求记录和处理所有提取数据;通过约定渠道立即报告关键漏洞;不得访问超出范围要求的数据。
前置条件:需要目标 Web 应用 URL(含可注入参数)、Burp Suite 或等效代理工具、SQLMap 安装、启用开发者工具的浏览器;需要理解 SQL 查询语法(MySQL、MSSQL、PostgreSQL、Oracle)、HTTP 请求/响应周期、数据库模式与结构;需要测试报告的写入权限;需要书面渗透测试授权、明确的范围(含目标 URL 和参数)、应急联系流程和数据处置协议。
输出交付物
主要输出包括带严重性评级的 SQL 注入漏洞报告、提取的数据库模式与表结构、认证绕过概念验证演示、含代码示例的修复建议。证据工件包括成功注入的截图、HTTP 请求/响应日志、数据库转储(已净化)和载荷文档。