news 2026/4/16 15:59:51

漏洞挖掘从入门到进阶(第 2 期):Web 实战 ——SQL 注入底层原理与全场景挖掘技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
漏洞挖掘从入门到进阶(第 2 期):Web 实战 ——SQL 注入底层原理与全场景挖掘技巧

第2期:Web漏洞挖掘实战|SQL注入底层原理与全场景挖掘技巧

第一期的内容戳这里

前言

SQL注入是Web漏洞中最常见、危害最大的漏洞之一,也是新手入门Web漏洞挖掘的首选场景。无论是CTF竞赛,还是实战安全测试,SQL注入都频繁出现——其核心成因是“用户输入未被过滤,直接拼接进入SQL语句,导致SQL语句被恶意篡改”。

本文将从底层原理出发,拆解SQL注入的成因、分类、挖掘流程,结合CTFshow靶场实战,覆盖手动注入、工具自动化挖掘、过滤绕过技巧,同时补充防护方案,兼顾“挖掘能力”与“防护思维”,适合Web安全新手、CTF爱好者阅读,需具备基础的MySQL语法与HTTP协议知识。

一、SQL注入底层成因拆解

SQL注入的本质是“输入可控+代码未过滤”,底层核心是“SQL语句拼接漏洞”,我们通过一个简单的代码示例,理解其成因:

  1. 漏洞代码示例(PHP)

    <?php // 接收用户输入的ID参数 $id =$_GET['id']; // 连接数据库 $conn = mysqli_connect("localhost", "root", "123456", "test"); // 拼接SQL语句(未过滤用户输入) $sql = "SELECT * FROM user WHERE id = " . $id; // 执行SQL语句并返回结果 $result = mysqli_query($conn, $sql); // 输出结果 while ($row = mysqli_fetch_assoc($result)) { echo "用户名:" . $row['username'] . "<br/>"; } ?>
  2. 注入触发过程

当用户输入正常参数(id=1)时,拼接后的SQL语句为:

SELECT * FROM user WHERE id = 1

语句正常执行,返回id=1的用户数据;当用户输入恶意参数(id=1 OR 1=1)时,拼接后的SQL语句为:

SELECT * FROM user WHERE id = 1 OR 1=1

由于1=1恒成立,语句会返回所有用户数据,触发SQL注入漏洞。

  1. 核心成因总结

SQL注入的出现,本质是开发者忽视了“用户输入的不可信性”,未对输入进行严格过滤,导致恶意输入被当作SQL语句的一部分执行。其核心触发条件有两个:

二、SQL注入的核心分类(按触发场景)

根据触发场景与数据交互方式,SQL注入可分为4类,不同类型的挖掘思路与利用方法略有差异,新手需重点掌握前3类。

  1. 基于报错的SQL注入
  1. 基于布尔的盲注
  1. 基于时间的盲注
  1. 堆叠注入

三、SQL注入标准化挖掘流程(靶场实战同步)

本文以CTFshow Web入门第1题(SQL注入)为例,拆解“信息收集→漏洞探测→漏洞利用→漏洞验证”的完整流程,新手可跟着实操。

  1. 信息收集(前置步骤)
  1. 漏洞探测(核心步骤)

漏洞探测的核心是“确认是否存在注入点”,常用两种方式:手动探测与工具探测。

(1)手动探测

(2)工具探测(SQLmap)

对于复杂场景,可使用SQLmap自动化探测,核心命令如下(新手直接复制修改):

# 探测是否存在SQL注入 sqlmap -u "http://xxx.ctfshow.com/?id=1" # 列出所有数据库 sqlmap -u "http://xxx.ctfshow.com/?id=1" --dbs # 列出指定数据库(如ctfshow_web)的所有表 sqlmap -u "http://xxx.ctfshow.com/?id=1" -D ctfshow_web --tables # 提取指定表(如flag)的所有字段数据 sqlmap -u "http://xxx.ctfshow.com/?id=1" -D ctfshow_web -T flag -C flag --dump

说明:SQLmap会自动判断注入类型、数据库类型,新手需注意:若目标存在反爬,需添加–cookie参数(携带登录Cookie)。

  1. 漏洞利用(获取核心数据)

这里以手动联合查询为例,获取数据库名、表名、字段名与Flag:

  1. 漏洞验证与风险评估

四、常见过滤绕过技巧(实战必备)

实战中,开发者常会对用户输入进行过滤,新手需掌握以下4种常用绕过技巧,应对不同过滤场景。

  1. 注释符绕过

若开发者过滤了–+注释符,可使用其他注释符替代:

# 常用注释符 --+ # 标准注释符(MySQL) /* */ # 多行注释符,如 ' /* and 1=1 */ # # 井号注释符(需URL编码为%23),如 ' and 1=1 #
  1. 关键字绕过

若开发者过滤了OR、AND、SELECT、UNION等关键字,可使用以下方法绕过:

  1. 特殊字符绕过

若开发者过滤了单引号、双引号,可根据注入类型选择绕过方法:

  1. 宽字节注入绕过

若开发者使用addslashes函数对单引号进行转义(将’转义为’),可使用宽字节注入绕过(适用于MySQL数据库,编码为GBK):

http://xxx.ctfshow.com/?id=1%df' union select 1,2,3--+

原理:%df与转义符\(ASCII码为0x5C)拼接为%df5C,GBK编码中%df5C是一个合法汉字,从而绕过转义,使单引号生效。

五、SQL注入防护方案(实战延伸)

挖掘漏洞的同时,需掌握防护思路,形成“攻防兼备”的能力,SQL注入的核心防护方案有3种:

六、新手避坑指南(核心4点)

七、总结与下期预告

本文拆解了SQL注入的底层成因、核心分类、标准化挖掘流程与过滤绕过技巧,结合CTFshow靶场完成了实战实操,核心要点是“理解SQL语句拼接漏洞,掌握手动注入与工具注入的结合方法”。SQL注入的挖掘核心不是背诵payload,而是理解底层逻辑,才能应对不同场景的过滤与防护。

下期预告:将聚焦Web漏洞挖掘的另一大高频场景——XSS跨站脚本漏洞,拆解其底层渲染原理、分类、挖掘流程与绕过技巧,结合OWASP WebGoat靶场实战,帮大家掌握XSS漏洞的挖掘与防护能力,敬请关注!

网安学习资源

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:38:32

解锁激光加工密码:功率、频率、脉宽、占空比全解析

引言 激光加工,又被称作镭射加工,是指利用高能量密度的激光束照射材料表面,使材料发生汽化、熔化、颜色变化等现象,从而实现对材料的加工处理 。作为 20 世纪人类的四大发明之一,激光加工已广泛应用于工业、军事、科研和日常生活等众多领域。 由于镭射光束具有高亮度、高…

作者头像 李华
网站建设 2026/4/16 12:23:28

论文:项目团队绩效域

一、项目背景2024年11月&#xff0c;我作为项目经理&#xff0c;参与到由XX市政务服务管理办公室发起的“AI民‘声’地图系统”项目的建设工作中。该项目为期6个月&#xff0c;总预算为206万元&#xff0c;目标是构建一个集数据可视化、智能分析与决策支持功能于一体的民生诉求…

作者头像 李华
网站建设 2026/4/16 12:28:18

本科生必看!千笔写作工具,人气爆表的AI论文写作软件

你是否曾为论文选题发愁&#xff0c;绞尽脑汁却难以下笔&#xff1f;是否在反复修改中感到力不从心&#xff0c;又担心查重率过高&#xff1f;面对繁杂的格式要求和文献检索难题&#xff0c;许多学生都深陷“论文焦虑”。别再独自挣扎&#xff0c;千笔AI——一款专为本科生量身…

作者头像 李华
网站建设 2026/4/16 13:01:38

黑客技术可以学,但千万别乱用!

黑客技术可以学&#xff0c;但千万别乱用&#xff01; 为什么说黑客技术可以学&#xff0c;但是千万不能乱用呢&#xff1f; 黑客都把技术用到哪了&#xff0c;来看看黑客干的事就知道了 黑客技术让你的电脑挖矿&#xff0c;黑掉你的银行卡&#xff0c;都是小咖级别&#xff0…

作者头像 李华
网站建设 2026/4/14 18:48:40

NMEA0183协议入门:格式、原理与应用全解析

目录 一、 初学者基础认知 1. 协议定位与核心作用 2. 协议特点&#xff08;适合初学者理解&#xff09; 3. 标准通信参数 二、 协议核心&#xff1a;帧格式详解 1. 起始符&#xff1a;$ 2. 地址域&#xff1a;aaXXX 3. 数据域&#xff1a;data1,data2,...,dataN 4. 校…

作者头像 李华