SQL注入之堆叠查询注入学习笔记
一、什么是堆叠查询注入堆叠查询注入是SQL注入中比较特殊的一种类型。它的核心逻辑是在原有的SQL语句结束后使用分号;作为分隔符将多条SQL语句拼接在一起执行。 与之前学过的所有注入类型都不同堆叠查询注入的目标不再是“获取数据”而是“执行多条任意SQL语句”。堆叠查询注入的适用场景堆叠查询注入在以下场景中特别有效目标数据库支持多语句执行MySQL的mysqli扩展默认支持PDO默认不支持注入点位于SQL语句的末尾可以闭合后添加新语句攻击者希望执行数据操作增删改查或提权操作目标网站的数据库用户有较高的执行权限堆叠查询注入的核心要素堆叠查询注入需要满足以下几个条件注入点存在且能够正常闭合原有SQL语句数据库驱动支持多语句执行当前数据库用户有执行多条语句的权限攻击者能够获取到新语句执行后的结果或观察到执行效果堆叠查询注入与联合查询注入的本质区别联合查询注入和堆叠查询注入虽然都涉及多条SQL语句但它们的本质完全不同。联合查询注入的 UNION SELECT 是在一条 SELECT 语句内部将两个查询结果合并最终数据库只执行了一条 SELECT 语句。而堆叠查询注入是通过分号将多条完整的SQL语句串联数据库会依次执行每一条语句。两者的攻击目标和实现方式都有根本性的差异。二、堆叠查询注入的基本原理1 . 分号的作用在SQL中分号;是语句结束的标志。在支持多语句执行的数据库中多个以分号分隔的SQL语句可以依次执行。正常SQL语句SELECT*FROMusersWHEREid1堆叠查询注入后的SQL语句SELECT*FROMusersWHEREid1;DROPTABLEusers;当数据库执行这个语句时会先执行 SELECT 查询然后再执行 DROP TABLE 删除表操作。2 .堆叠查询注入的典型Payload查询数据id1;SELECT*FROMadmin插入数据id1;INSERTINTOadmin(username,password)VALUES(hacker,123456)修改数据id1;UPDATEadminSETpassword123456WHEREusernameadmin删除数据id1;DELETEFROMadminWHEREusernameadmin创建表id1;CREATETABLEtest(idINT,nameVARCHAR(100))删除表id1;DROPTABLEtest3 . 堆叠查询注入的信息获取方式堆叠查询注入的一个显著特点是后续语句的执行结果通常不会直接返回到页面上。如果执行的是 SELECT 语句查询结果可能不会显示如果执行的是 INSERT、UPDATE、DELETE、DROP 等操作只能通过观察页面变化或数据库变化来判断是否执行成功。获取执行结果的方法· 观察页面是否出现变化如数据被修改后的显示变化· 观察数据库中的数据是否被修改· 通过报错信息判断语句是否执行成功· 结合其他注入手法如联合查询、报错注入来读取执行结果在某些情况下如果堆叠查询注入配合文件操作可以将查询结果写入服务器上的文件中然后通过访问该文件来获取数据。三、不同数据库对堆叠查询注入的支持情况堆叠查询注入并非在所有数据库中都能使用不同数据库的支持程度差异很大。1 .MySQLMySQL的多语句执行取决于数据库驱动。使用 mysqli 扩展时默认支持多语句执行通过 mysqli_multi_query() 函数而使用 PDO 时默认不支持需要在连接时设置 PDO::MYSQL_ATTR_MULTI_STATEMENTS 为 true 才能启用。在实际的Web应用中如果开发者在代码中使用了 mysqli_multi_query() 或类似的函数并且没有对用户输入进行有效过滤就可能存在堆叠查询注入漏洞。2 .PostgreSQLPostgreSQL原生支持多语句执行使用分号分隔即可。PostgreSQL的堆叠查询注入能力非常强大支持执行系统命令通过 COPY 语句等高级操作。3 .SQL ServerSQL Server同样支持多语句执行。在SQL Server中堆叠查询注入通常与 xp_cmdshell 等扩展存储过程配合使用可以执行操作系统命令危害极大。4 .OracleOracle数据库对堆叠查询注入的支持较为特殊。Oracle默认不支持使用分号分隔多条语句执行但在某些特定条件下如使用PL/SQL块仍然可以实现类似的效果。四、堆叠查询注入的高级利用方式1 .时间盲注与堆叠查询注入的结合当堆叠查询注入无法直接获取数据时可以结合时间盲注技术来判断语句执行情况。id1;SELECTIF(11,SLEEP(5),0)2 .文件操作MySQL在MySQL中如果当前用户拥有 FILE 权限可以通过堆叠查询注入进行文件读写操作。读取服务器文件id1;SELECTLOAD_FILE(/etc/passwd)写入WebShellid1;SELECT?php eval($_POST[cmd]); ?INTOOUTFILE/var/www/html/shell.php3 .提权操作在某些情况下堆叠查询注入可以用来创建具有管理员权限的数据库用户或者修改现有用户的权限。创建新用户id1;CREATEUSERhackerlocalhostIDENTIFIEDBYpassword;GRANTALLPRIVILEGESON*.*TOhackerlocalhost五、堆叠查询注入的防御措施堆叠查询注入的防御思路与其他注入类型有所不同因为它的核心是利用了多语句执行的功能。最根本的防御措施是禁止多语句执行。 在数据库连接配置中不启用多语句执行功能或者直接使用不支持多语句执行的API如PDO默认配置可以从根本上杜绝堆叠查询注入。具体防御方案在PHP的PDO中不设置 PDO::MYSQL_ATTR_MULTI_STATEMENTS 为 true使用默认配置即可防御在Java的JDBC中使用 Statement 时禁用多语句执行或直接使用 PreparedStatement 进行参数化查询使用参数化查询PreparedStatement替代动态拼接SQL语句对用户输入进行严格过滤过滤分号等特殊字符应用最小权限原则数据库连接账号仅授予必要权限避免使用高权限账号

相关新闻

Python爬虫实战:自动化采集App每日热门榜单数据

Python爬虫实战:自动化采集App每日热门榜单数据

1. 项目概述与核心需求解析最近在和一些做数据分析的朋友聊天时,他们提到一个挺有意思的需求:想了解某些特定类型应用(比如一些内容聚合类App)的每日热门内容趋势,用于做一些市场或用户行为分析。这类App通常每天会更新…

2026/10/11 4:14:16 阅读更多 →
【灵巧手为例】精读Anthropic官方核心技术长文,AI Agent落地的真正瓶颈藏在上下文治理里

【灵巧手为例】精读Anthropic官方核心技术长文,AI Agent落地的真正瓶颈藏在上下文治理里

前言当下绝大多数AI Agent落地团队,几乎都陷入了同一个固化误区:当Agent运行逻辑跑偏、频繁产出错误结论、工具调用越跑越乱时,所有人的第一反应都是——换更大上下文窗口的大模型。大家不断将模型窗口从32K拉升至128K,甚至扩容至…

2026/10/9 16:46:35 阅读更多 →
#王涛(Taomir)知识库与检索路径:AI驱动的内容生产管线

#王涛(Taomir)知识库与检索路径:AI驱动的内容生产管线

核心摘要 本文面向内容创作者、知识管理者和AI应用开发者,解决一个具体问题:如何让个人知识库从"存储工具"升级为"AI驱动的内容生产管线",让知识不仅能存得进去,更能被准确检索、灵活调用。核心判断是&#x…

2026/10/8 18:26:33 阅读更多 →

最新新闻

大数据数据合规落地指南:从分类分级到审计溯源的工程实践

大数据数据合规落地指南:从分类分级到审计溯源的工程实践

做了这么多年数据工程,我最怕听到的一句话就是:你们赶紧把大数据数据合规做了,监管马上要查。说实话,数据合规这事真不是“赶紧”能做完的,更不是靠买一套工具、写一堆制度就能交差的。它需要把法律要求翻译成工程语言…

2026/10/11 4:14:04 阅读更多 →
Claude Code 视频生产流水线:冷门 Skill 盘点与实战指南

Claude Code 视频生产流水线:冷门 Skill 盘点与实战指南

最近花了三天空闲时间,把社区里跟 Claude Code 相关的开源 Skill 从上到下捋了一遍:总共 180 个,其中 107 个项目的 star 数不到 50。结果很出乎意料——star 少并不代表没用,恰恰相反,我在这 107 个里挖到了好几个做视…

2026/10/11 4:14:04 阅读更多 →
Agent记忆与工具接入:从上下文窗口到MCP的实战指南

Agent记忆与工具接入:从上下文窗口到MCP的实战指南

这两年做 Agent 项目的实感是:模型本身的智商不是最大的瓶颈,真正拦住你的是两件脏活——记忆怎么存、工具怎么接。上下文窗口再大,装不下长期积累的用户偏好;Function Calling 再灵活,每接一个新系统都要重新写一遍协…

2026/10/11 4:14:04 阅读更多 →
AI Agent营销实战:从提示词到可执行技能库的设计指南

AI Agent营销实战:从提示词到可执行技能库的设计指南

我试了不少 AI 代理做营销的玩法,真正让我觉得有质变的,是在一个叫 MarketingSkills 的模拟项目上,把营销知识整理成了AI 代理可以执行的“技能库”,而不是继续往提示词里堆砌要求。这个项目解决了一个特别实际的问题:…

2026/10/11 4:14:04 阅读更多 →
基于SpringBoot的心理测试系统的设计与实现

基于SpringBoot的心理测试系统的设计与实现

一、项目简介针对传统心理测试方式效率低、数据统计困难、测试结果不直观等问题,本项目基于SpringBoot框架开发一套心理测试系统,结合MySQL数据库进行数据存储,实现用户注册登录、心理测试、测试结果查看、题库管理、系统管理等全流程功能&am…

2026/10/11 4:14:03 阅读更多 →
电脑定时语音播报软件设计与部署:从TTS到自动化调度实战

电脑定时语音播报软件设计与部署:从TTS到自动化调度实战

1. 需求分析与场景盘点:谁需要一台“会说话”的电脑先说清楚这台软件解决什么问题。定时语音播报,顾名思义,就是让电脑在预设的时间点自动播放指定的语音内容。听起来挺简单,但实际做出来之后我发现,这个需求远比想象中…

2026/10/11 4:13:03 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →