一、漏洞原理
SQL注入是由于应用程序在处理用户输入时未对特殊字符转义,攻击者可操控SQL语句执行。
二、检测方法
- 单引号测试: ' 返回错误说明存在注入
- 恒真测试: ' OR '1'='1
- 注释测试: '--
三、注入类型
- 联合查询: UNION SELECT
- 报错注入: updatexml/extractvalue
- 布尔盲注: 页面true/false判断
- 时间盲注: SLEEP函数
四、WAF绕过
- 注释符: /**/ 代替空格
- 双写: OORR 代替 OR
- 编码: URL/Unicode/十六进制
- 内联注释: /!50000SELECT/
五、防御
- 参数化查询
- 输入验证
- 最小权限原则