目录

SQL 注入被称为漏洞之王,是 Web 安全中出现频率最高、危害最大、面试必考、靶场必练的经典高危漏洞。几乎所有和数据库交互的功能,都存在被注入的风险。
一、SQL 注入核心原理
SQL 注入是指:攻击者可控的参数没有经过过滤,直接拼接到后端 SQL 语句中,破坏原有 SQL 逻辑结构,从而执行恶意数据库语句。
简单理解:
前端输入恶意符号、SQL 语句,闭合原有查询语句,篡改查询逻辑、越权查询、新增、删除、修改数据,最终实现脱库、拿数据、甚至服务器权限接管。
二、SQL 注入触发点 & 检测特征
常见触发位置
只要程序与数据库产生交互,基本都可能存在注入:
- 网站登录框
- 搜索框、查询功能
- URL 参数传参页面
- 请求头参数(Cookie、User-Agent、Referer)
- 订单查询、信息查询、列表筛选功能
基础检测方式
在参数后输入单引号 ',观察页面:
- 页面报错 → 大概率存在字符型注入
- 页面无变化、正常返回 → 可能是数值型或被 WAF 拦截
- 页面空白、延迟加载 → 可能存在时间盲注
三、SQL 注入分类(最全分类)
1、按注入点参数类型分
- 数值型注入:参数为数字,无需引号闭合,直接构造 SQL 语句
- 字符型注入:参数被单 / 双引号包裹,需要先闭合引号才能篡改逻辑
2、按注入利用方式分
- 联合查询注入:利用
union select直接回显数据,最简单、最直接 - 报错注入:利用数据库报错函数,强制爆出数据
- 布尔盲注:页面无数据回显,只有对错两种页面状态,逐字符猜解数据
- 时间盲注:页面无任何差异,通过
sleep()延迟判断语句是否执行成功 - DNSlog 带外注入:时间盲注升级版,利用 DNS 请求带出数据,效率极高
- 二次注入:恶意语句存入数据库,二次调用时触发注入
- 堆叠注入:利用分号执行多条 SQL 语句
- 宽字节注入:利用编码绕过引号过滤
- HTTP 头部注入
- Cookie 注入
- User-agent 注入
- Referer 注入
四、主流数据库报错注入函数
1、MySQL 报错函数
updatexml():第二个参数识别特殊字符触发报错回显extractvalue():同上,常用于短数据爆出floor(rand()*2):利用取整报错,经典老版本脱库手法
2、SQL Server 报错函数
convert():类型转换异常报错cast():强制转换异常报错
3、Oracle
无专用报错函数,依靠逻辑比较异常触发报错注入
4、Access
完全不支持报错注入,只能通过枚举猜测表名字段
五、主流数据库注入语法差异(MySQL / SQL Server / Oracle / Access)
1、脱库数据源差异
- MySQL:依靠
information_schema系统库- schemata → 所有数据库名
- tables → 所有表名
- columns → 所有字段名
- SQL Server:依靠系统表
- databases、objects、columns
2、分页语法差异
- MySQL:
limit n,m分页 - SQL Server:无 limit,使用
top替代
3、系统支持
- MySQL:Windows / Linux 双系统支持
- SQL Server:仅支持 Windows
4、注释符区别
- MySQL:
--、/**/、# - SQL Server:
--、/**/ - Oracle:
--、/**/ - Access:无注释符
5、Access 数据库特点
- 文件型数据库,无需端口
- 无多数据库概念,所有表统一存放
- 无法执行系统命令
- 无注释、无报错注入
- 依靠
msysobjects判断数据库类型 - 只能用
exists()枚举猜解数据
六、SQL 注入最全防御方案
行业通用三大防御体系:预编译优先、参数过滤为辅、权限最小兜底
1、预编译语句(最有效、行业首选)
使用参数化查询,杜绝 SQL 拼接
- Java:MyBatis 预编译
- PHP:ThinkPHP 框架参数绑定
- Python:pymysql 参数化
预编译会将 SQL 逻辑与用户输入完全隔离,从根源杜绝注入。
2、参数过滤 + WAF 防护
- 过滤 / 转义特殊字符:
' " ; ( ) * & # - 关键字拦截:union、select、and、or、sleep
- 空格替换、双写绕过拦截、大小写统一拦截
- 部署软硬件 WAF,识别恶意攻击特征
3、权限管控 + 报错关闭
- 数据库账号最小权限原则,禁止授予 drop、alter、grant 高危权限
- 生产环境关闭数据库详细报错,不对外暴露数据库结构信息
- 禁止外网直接暴露数据库报错页面
七、SQL 注入学习总结
1、SQL 注入之所以叫漏洞之王,是因为利用方式多、绕过方式多、危害极大,可以直接脱库、拖数据、控服务器。
2、不同数据库语法、注释、报错机制完全不同,渗透实战需要针对性适配 Payload。
3、所有过滤、WAF 都有被绕过概率,预编译参数化查询是唯一根治手段。
4、入门学习顺序:联合注入 → 报错注入 → 布尔盲注 → 时间盲注 → DNS 带外注入 → 高阶绕过与二次注入。
免责声明:本文技术内容仅用于网络安全合法靶场学习、安全运维加固、漏洞修复研究,严禁用于未授权测试与网络攻击,违规自负法律责任。
如何系统学习网络安全?
网络安全作为数字时代的核心技术基石,已成为保障各行业安全稳定运行的坚实屏障。筑牢网络安全的防线,掌握先进的防护策略和技能正上升为国家与企业发展的战略优先级。
构建稳固的网络安全能力是一个体系的工程,需要从夯实基础理论出发,持续深化到攻防对抗与应急响应的实战层面。
如果你是准备学习网络安全(黑客)或者正在学习,我可以把我自用的360独家内部资料分享给你,包含以下内容你应该能用得上:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

681



被折叠的 条评论
为什么被折叠?



