SQL注入之堆叠注入(堆查询注入)
Stached injection -- 堆叠注入
0x00 堆叠注入的定义
Stacked injection 汉语翻译过来后,称 为堆查询注入,也有称之为堆叠注入。堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新的查询或者终止查询,可以达到修改数据和调用存储过程的目的。
0x01 堆叠注入的原理
在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。
而 union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all 执行的语句类型是有限的,只可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products,则服务器端生成的sql语句为:
Select * from products where productid=1;DELETE FROM products
当执行命令后,第一条显示查询信息,第二条则将整个表进行删除。
0x02 堆叠注入的局限性
堆叠注入也有其相对的局限性,并不是每一个环境下都可以执行,可能受到API或者数据库引擎不支持的限制,当然了权限不足也可以解释为什么攻击者无法修改数据或者调用一些程序。
如图:

虽然我们前面提到了堆叠查询可以执行任意的sql语句,但是这种注入方式并不是十分的完美的。在我们的web系统中,因为代码通常只返回一个查询结果,因此,堆叠注入第二个语句产生错误或者结果只能被忽略,我们在前端界面是无法看到返回结果的。因此,在读取数据时,还是建议使用 union(联合)注入。同时在使用堆叠注入之前,我们也是需要知道一些数据库相关信息的,例如表名,列名等信息。
0x03 数据库实例介绍
因为笔者接触数据库不多,所以下面我们从MySQL数据库角度出发,介绍一些数据库的基本操作,增删查改,以下列出数据库相关堆叠注入的基本操作。至于其他数据库,大家可以自己实践。
MySQL数据库实例
(1)新建表
select * from user where id = 1;create table test like user;

可以看到,我们的语句执行成功,再去检查一下表test是否创建成功。
show tables;

实验显示:表test成功创建。
(2)删除新建的test表
select * from user where id=1;drop table test;

再去查看:
show tables;

(3) 查询数据库
select * from user where id=1;select 1,user(),database();

(4)加载文件
select * from user where id=1;select load_file('e:/test.txt');

(5)修改数据
select * from user where id=1;insert into user(username,password,address,sex,age) values ('范冰冰','123456','北京',2,26);

查看结果:

可以看到,我们刚刚添加的数据已经写入了数据库。
0x04 堆叠注入之sqli-labs实例
Less-38 堆叠注入 - 字符型 - GET
由下图测试我们可以看到,只有3条数据:

我们使用堆叠注入,向该数据表插入一条数据:
http://192.168.26.130/sqli/Less-38/?id=1’;insert into users(id,username,password) values (‘38’,’less38’,’ruoli’) --+
可以看到,数据已经发生了变化,

好了,有时间了我会补充一个CTF中遇到的堆叠注入题材,以示补充。
SQL注入之堆叠注入(堆查询注入)的更多相关文章
- Stacked injection--堆叠注入--堆查询注入
Stacked injection--堆叠注入--堆查询注入 原文地址;http://www.sqlinjection.net/stacked-queries/ 本篇属于集合原作者的思路和个人想法 ...
- 十八:SQL注入之堆叠及绕WAF
堆叠查询注入 (双查询注入) stacked injections(堆叠注入)从名词的含义就可以看到是一堆的SQL语句一起执行,而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一 ...
- sql注入之堆叠注入及waf绕过注入
#堆叠查询注入 1.堆叠查询概念 stacked injections(堆叠查询注入)从名词的含义就可以看出一应该是一堆(多条)sql语句一起执行.而在真实运用中也是如此,我们知道在mysql中,主要 ...
- 记一次SQL联合查询注入工具的编写
这是一个ASP网站的简单SQL注入检测和利用的工具,主要的功能是简单的检测出SQL注入漏洞,可以使用该id存在的SQL注入来获取数据库中的网站管理员的表名和字段名,猜解数据库中该表的字段数,最后通过联 ...
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题: 浏览器安全限制了前端脚本跨站点的访问资源, ...
- sql注入之双查询注入
双查询注入前需要了解什么是子查询 子查询可以理解在一个select语句中再插入一个select 里面的select语句就是子查询 例子:select concat((select database() ...
- SQL注入测试平台 SQLol -2.SELECT注入测试
前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试. 一条完成 ...
- sqli注入--利用information_schema配合双查询报错注入
目录 sqli-labs 5.6双查询报错注入通关 0x01 获取目标库名 0x02 获取库中表的数量 0x03 获取库中表名 0x04 获取目标表中的列数 0x05 获取目标表的列名 0x06 从列 ...
- 【sql注入】简单实现二次注入
[sql注入]简单实现二次注入 本文转自:i春秋社区 测试代码1:内容详情页面 [PHP] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 1 ...
随机推荐
- Scrum 冲刺 第七篇
Scrum 冲刺 第七篇 每日会议照片 昨天已完成工作 队员 昨日完成任务 黄梓浩 初步完成app首页模块的搭建 黄清山 完成部分个人界面模块数据库的接口 邓富荣 完成部分个人界面接口 钟俊豪 完成部 ...
- Scrum 冲刺第五天
一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:学习如何编写测试计划 今日工作计划:学习如何编写用户手册 工作中遇到的困难:写文档也有很多讲究的点,花了很多时间 张 ...
- PHash从0到1
背景 在重复图识别领域,对于识别肉眼相同图片,PHash是很有用的,而且算法复杂度很低.它抓住了 " 人眼对于细节信息不是很敏感 " 的特性,利用DCT变换把高频信息去掉,再加上合 ...
- 算法——寻找第K个最大的数
在未排序的数组中找到第 k 个最大的元素. 链接: leetcode. 解题思路:通过快速排序的思想方法,每次随机获取指定范围内一个树的排序位置,然后根据这个位置,再重新指定范围,直到这个位置索引满足 ...
- JS复习之深浅拷贝
一.复习导论(数据类型相关) 想掌握JS的深浅拷贝,首先来回顾一下JS的数据类型,JS中数据类型分为基本数据类型和引用数据类型. 基本数据类型是指存放在栈中的简单数据段,数据大小确定,内存空间大小可以 ...
- Struts2-059 漏洞复现
0x00 漏洞简介 Apache Struts框架, 会对某些特定的标签的属性值,比如id属性进行二次解析,所以攻击者可以传递将在呈现标签属性时再次解析的OGNL表达式,造成OGNL表达式注入.从而可 ...
- ECharts的基本使用与方法
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度 ...
- Numpy的学习1-创建数据基础
1 import numpy as np 2 3 array = np.array([[1,2,3],[4,5,6]]) 4 5 print(array) 6 print('number of dim ...
- matplotlib的学习5-legend图例
import matplotlib.pyplot as plt import numpy as np ''' legend 图例就是为了帮我们展示出每个数据对应的图像名称. 更好的让读者认识到你的数据 ...
- 抢先看:笔者亲历的2020年中国.NET开发者大会活动纪实
2020年中国.NET开发者大会活动纪实 1 2020年12月19日的苏州工业园区,天公作美,阳光明媚,气象迷人,正是一个搞事的好日子.在这里,数百名中国.NET开发者们汇聚一堂,怀揣着激情和梦想,一 ...