6.23 Day4 http://127.0.0.1/web/sql/boolean.php

Boolean注入

有些情况下,开发人员屏蔽了报错信息,导致攻击者无法通过报错信息进行注入的判断。 这种情况下的注入,称为盲注。 盲注根据展现方式,分为boolean型盲注和时间型盲注。

Boolean是基于真假的判断(true or false); 不管输入什么,结果都只返回真或假两种情况; 通过and 1=1和and 1=2可以发现注入点。

Boolean型盲注的关键在于通过表达式结果与已知值进行比对,根据比对结果判断正确与否。


布尔注入:

检查是否存在sql注入:

综上可知:存在布尔注入。

判断数据库名长度:

综上可知数据库名长度为4

判断数据名:

方法一:通过substr()函数手动26个字母挨个测试




综上可得,数据库名为‘test

方法二:通过ascii()函数手动26个字母挨个测试
由方法一的结论数据库名'test',此处只拿第一个字母进行验证
ASCII一览表
ASCII表中字母t对应的ASCII值



由此可知第一个字母对应的ascii值为116
查表可得第一个字母为't'
剩下的字母同理
该测试过程同样可以用方法三中的burpsuite进行自动测试


选择一个密码本(此处选择的1~1000,实际上只需要1~200就行了)

故值骤变处的ASCII值为116,结合查表可知,第一个字母为't'

方法三:利用burpsuite自动化测试
启用火狐浏览器代理


  1. 打开拦截




    选中t并添加$






    第一个转变的地方为't',故数据库名的第一个字母为't'


    第二个字母:
    改成
    2和重复上述步骤可得



    故数据库名的第一个字母为'e'

    第三个字母:


    故数据库名的第一个字母为's'


    第四个字母:


    故数据库名的第一个字母为't'
    综上可知,数据库名为'
    test'

判断数据库test中的表名

首先判断第二个表名的长度:

故第二个表名的长度5

利用burpsuite自动测试:

第一个字母:

第二个字母:

第三个字母:

第四个字母:

第五个子母:

综上所述,第二个表名为'users'

运用以下命令并套用上述步骤可以得出第一个表名:person

http://127.0.0.1/web/sql/boolean.php?id=1' and length((select table_name from information_schema.tables where table_schema='test' limit 0,1))>=6 --+

运用以下命令并重复述步骤可以得出第三个表名:xss

http://127.0.0.1/web/sql/boolean.php?id=1' and length((select table_name from information_schema.tables where table_schema='test' limit 3,1))>=3 --+

根据下图运行结果可知,该数据库中只有三个表personusersxss

判断出表users中的所有字段名: 

第一个字段名:

判断第一个字段名的长度:

综上可知第一个字段名的长度为2

运用burpsuite自动化测试出第一个字段的名字:

故第一个字段名的第一个字母是i

故第一个字段名的第二个字母是d

综上,第一个字段名是'id'

 第二个字段名:

判断第二个字段名的长度:

综上可知第二个字段名的长度为8
 

运用burpsuite自动化测试出第二个字段的名字:









综上,第二个字段名是'username'

 第三个字段名:

判断第三个字段名的长度:



故而第三个字段名的长度为8

运用burpsuite自动化测试出第三个字段的名字:










综上,第三个字段名是'password'

同理利用burpsuite获得数据:

找第一个id的长度:


故而第一个id只有一位数字

求出具体id


故第一个id为1



判断第一个id对应的username的长度:

故而第一个username有8位

利用burpsuite逐个测试出username:










综上,第一个username是‘ZHaNGSAN

判断第一个数据对应的password的长度:



故第一个password的长度为14


利用burpsuite自动逐个测试出密码:





由于后面测试步骤相同,不宜一做列举了
最后得出第一个password为‘AHANGSANDEMlMA

综上可得:第一个id-username-password为1-ZHaNGSAN-AHANGSANDEMlMA

剩下的用户数据重复上述步骤,通过length()函数判断是否存在下一位数据,若存在则顺带得出垓数据的长度。
再通过substr()函数逐个判断出具体数据。
(此处仅得出来第一个数据的idusernamepassword,后续数据略)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值