了解联合查询注入之前,先要了解一下什么是union?

union是用于合并两个sql查询结果的语句。

要使用union

必须有相同的列数 

必须有两条以上的select语句组成 

列的数据类型必须兼容,兼容的含义是必须数据库可以隐含转换他们的类型

联合注入

下面将以dwav靶场示例

1.判断是否存在可疑的注入点(数字型或字符型)。

数字型与字符型注入最大的区别在于:数字型不需要单引号闭合,而字符型一般需要使用单引号来闭合。

方法一: 单引号法

'

方法二: 逻辑法

and 1=1

and 1=2

1' and '1'='1

1' and '1'='2

方法三:运算法

-1

-0

2.猜解表名

常见敏感表名

admin

user admin_userinfo

system

vipuser

a_admin

xxx_admin

3.猜字段数

order by

4.猜解字段名

敏感字段名:

username

password

admin_usernmae

admin_password

5.获取数据

id = 1 union select 1,2,3,'''''

联合注入步骤详情:

打开本地dvwa靶场

1.判断是否存在注入(数字型或字符型)

当输入id等于1'时 数据库直接报错,通过回显我们可以看出id=1'被包在单引号里面被数据库转换成了字符串而不会去执行。

所以我们就要构造闭合 让语句可以成功带入数据库进行执行,以达到我们想要的操作。

当输入id = 1' and '1' ='1时,此时代数数据库执行的语句就是这样的

select First name,surname FORM users WHERE user_id='1''  

当输入1' and '1' ='1时,执行的语句就会是这样

select First name,surname FORM users WHERE user_id='1' and '1' ='1'

将姓名都显示出来。说明存在字符型注入。

2.猜解字段数

命令:   order by 数字
功能:当猜测的数字小于或等于实际字段数,回显正确,否则报错

发现输入id=1' order by 3 # 时报错,则猜测字段为两个

3.联合查询

使用 union select database(),user() #       !!!井号不要忘记加

这里查询到数据库为 dvwa 用户为root@loca1host

查询当前 数据库版本(尤为重要)

当mysql 版本小于4.0 的时候 ,是不支持 union seletc联合查询的 

当mysql 版本大于5.0时,有个默认数据库information_schema,保存了 Mysql服务器所有数据库的信息,如数据库名,数据库的表, 表栏的数据类型与访问权限等。该数据库拥有⼀个名为 tables 的数据表,该表包含两个字段 table_name 和 table_schema,分别记录 DBMS 中的存储的表名和表名所在的数据库

列举几个常见的查询函数

1. version()- 数据库版本

2.user() -数据库用户

3. database() - 当前所在数据库

4. current_user() - 当前用户名

5. system_user() - 系统用户名

6. session_user() -连接到数据库的用户名

7. @@basedir - 数据库的安装目录

8. @@datadir - 数据库文件存放目录

9. SCHEMATA-  记录当前数据库服务器所有数据库名称

10.TABALES-   记录了当前数据库服务器所有表的信息

4.获取数据表名

1' union select table_name,table_schema from information_schema.tables where table_schema= 'dvwa'#

联合      查询 "information_schema.table" 表中选取 "table_name" 和 "table_schema" 列   条件  table_schema = 'dvwa' #

获得 guestbook表 和 users表

 5.获取表列名

1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

group_concat 一次性

6.获取数据

  

MySQL手注之联合查询注入的更多相关文章

  1. MySQL手注之报错注入

    报错注入: 指在页面中没有一个合适的数据返回点的情况下,利用mysql函数的报错来创造一个显位的注入.先来了解一下报错注入常用的函数 XML:指可扩展标记语言被设计用来传输和存储数据. concat: ...

  2. 记一次SQL联合查询注入工具的编写

    这是一个ASP网站的简单SQL注入检测和利用的工具,主要的功能是简单的检测出SQL注入漏洞,可以使用该id存在的SQL注入来获取数据库中的网站管理员的表名和字段名,猜解数据库中该表的字段数,最后通过联 ...

  3. 理解mysql执行多表联合查询

    阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql ...

  4. Node.js的mysql执行多表联合查询

    数据库(test)中的表结构(admin.user) //执行多表结合查询 var mysql = require('mysql'); var connection = mysql.createCon ...

  5. MySQL之外键、联合查询、子查询

    外键(foreign key): 外面的键(键不在自己表中),如果一张表中有一个字段(非主键)指向另外一张表的主键,那么将该字段称之为外键. 外键可以在创建表的时候或者创建表之后增加(但是要考虑数据的 ...

  6. SQL注入 手注与联合注入

    SQL注入,吧sql命令插入到WEB表单,或输入域名或页面亲求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令:            得到数据库用户名和密码 1:在以,{ .asp?id=32( ...

  7. MYsql系统函数和联合查询

    函数是SQL里的关键字,用于对字段里的数据进行操作.函数是一个命令,通常与字段名称或者是表达式联合使用,处理输入的数据并产生结果 常用函数 控制函数 字符串函数 数学函数 日期时间函数 汇总函数 CA ...

  8. base64变形注入与联合查询注入的爱情故事

    先来写一下GET的知识点: 1.知道了convart函数(CONVERT函数是把日期转换为新数据类型的通用函数) 2.Illegal mix of collations for operation ' ...

  9. MySQL手注之盲注(布尔)

    布尔注入: 当我们在注入的过程中输入的语句在页面没有数据返回点,这就需要利用布尔型盲注一步步来猜取想要的数据.(盲注分为布尔盲注和时间盲注) 盲注常用函数: length()  返回字符串的长度, 可 ...

随机推荐

  1. Learning in Spiking Neural Networks by Reinforcement of Stochastic Synaptic Transmission

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Summary 众所周知,化学突触传递是不可靠的过程,但是这种不可靠的函数仍然不清楚.在这里,我考虑这样一个假设,即大脑利用突触传递的随机 ...

  2. python 报错错误集合——更新中

    1. #!/usr/bin/env python # -*- coding:utf-8 -*- 'one #报错 File "C:\Users\shuxiu\Desktop\test.py& ...

  3. JMH-大厂是如何使用JMH进行Java代码性能测试的?必须掌握!

    Java 性能测试难题 现在的 JVM 已经越来越为智能,它可以在编译阶段.加载阶段.运行阶段对代码进行优化.比如你写了一段不怎么聪明的代码,到了 JVM 这里,它发现几处可以优化的地方,就顺手帮你优 ...

  4. 最强U盘修复工具

    今天清理东西,本来就要把陪伴我5年多的东芝U盘扔掉了,我说试试能不能修复一下 然后就是下载各种U盘修复工具,可是我的驱动显示正常,就是在磁盘管理里边显示无媒体,其实就是电脑不知道这是个神马玩意,使用U ...

  5. .NET Core3.1 Dotnetty实战第一章

    一.概要 本系列文章主要讲述由微软Azure团队研发的.net的版本的netty,Dotnetty.所有的开发都将基于.net core 3.1版本进行开发. Dotnetty是什么,原本Netty是 ...

  6. [PyTorch 学习笔记] 3.3 池化层、线性层和激活函数层

    本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/nn_layers_others.py 这篇文章主要介绍 ...

  7. NOR Flash 与 NAND Flash 的区别

    闪速存储器 闪速(Flash)存储器是一种电可擦除可多次编程的存储器.工艺上主要有两类:或非(NOR)型阵列和与非(NAND)型阵列. 项目 读取速度 写入速度 擦除速度 特性 其他 NOR Flas ...

  8. SplashImage

    关于Unity启动时间过长(启动黑屏时间长)的问题 https://blog.csdn.net/h5q8n2e7/article/details/50484458 Unity3D游戏开发之“重写Uni ...

  9. lidar激光雷达领域的分类

    lidar领域可以按分为以下五方面: 激光雷达系统与装备 激光雷达系统与开发 激光雷达光源 激光雷达探测 多光谱激光雷达系统 单光子激光雷达系统 低成本RGB-D距离传感器 激光雷达元器件及装备等 激 ...

  10. SICP 习题1.10

    题目要求 解题方法 递归计算 没什么好说的,单纯的套用数学公示 (define (f n) (if (< n 3) n (+ (f (- n 1)) (* 2 (f (- n 2))) (* 3 ...