当前位置: 首页 > news >正文

[GYCTF2020]Blacklist1

考点:

堆叠注入

handler命令的使用

看到页面有个简单的输入框,猜想是sql注入

试一下1',发现存在注入点,那就是sql注入了

输入1和输入2提交后好像没有什么有用的东西,试试联合查询注入,发现很多函数被禁止了

尝试堆叠注入,我对堆叠注入只有个浅显的理解,比如我们的payload是1'; show tables--+

应该是1'将前面的语句闭合,";"将前面和后面的命令有了一个先后顺序,先去执行闭合的1'的那个语句,然后再执行";"后面的语句"show tables";而--会把原本的sql查询语句后面的部分注释掉,+只是用作连接符号。可以看到是执行了两个结果。(如果理解不对,还请uu们指出错误)

 那么接下来我们继注入:

使用1';show databases--+来查看数据库有哪些(看了网上的blog,好多都是直接show tables,但是直接show tables为什么会直接出现FlagHere表呢)

 使用1';show tables--+ 看到FlagHere表

 使用1';show columns from `FlagHere`--+ 查看列名

 由于限制了多条命令的输入,所以只能改用其他的命令了Handler可以实现查询,可以来了解一下Handler命令的语法使用

MySQL :: MySQL 8.0 Reference Manual :: 15.2.5 HANDLER Statement

1. 打开表

HANDLER tbl_name OPEN [ [AS] alias]
  • tbl_name:要打开的表的名称。
  • alias(可选):为打开的表指定一个别名,以便在后续的 HANDLER 操作中使用。

这个命令会打开指定的表,以便进行后续的数据读取操作。如果指定了别名,那么在后续的 HANDLER 语句中就可以使用这个别名来引用表。

2. 读取数据

通过索引读取
HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
[ WHERE where_condition ] [LIMIT ...]
  • index_name:要使用的索引名称。
  • { = | <= | >= | < | > }:比较操作符,用于指定读取数据的条件。
  • (value1,value2,...):与索引列对应的值,用于匹配数据。
  • WHERE where_condition(可选):额外的条件,用于进一步过滤数据。
  • LIMIT ...(可选):限制返回的记录数。

这个命令会根据指定的索引和条件读取数据。

读取特定位置的数据
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
[ WHERE where_condition ] [LIMIT ...]
  • { FIRST | NEXT | PREV | LAST }:指定读取数据的位置。FIRST 读取第一条记录,NEXT 读取下一条记录,PREV 读取上一条记录,LAST 读取最后一条记录。

这个命令允许你按照索引的顺序读取数据。

简化读取
HANDLER tbl_name READ { FIRST | NEXT }
[ WHERE where_condition ] [LIMIT ...]

这个命令是上述通过索引读取的简化版本,它不需要指定索引名称,但通常用于没有索引或不需要通过索引读取的场景。

3. 关闭表

HANDLER tbl_name CLOSE

这个命令会关闭之前打开的表,释放相关资源。

 使用命令1';handler FlagHere open;handler FlagHere read first;handler FlagHere close;--+

读取flag


http://www.mrgr.cn/news/25545.html

相关文章:

  • 深入探索 Ubuntu:从基础到高级应用
  • Lesson08---string类(3)
  • 第二期: 第四节, 裸机编程 LED 汇编代码。
  • 质量小议45 - 粒度
  • 2024.9.12
  • 企业数字化转型、建设和升级面临的主要难题和解决之道(2)
  • 书接上文,介绍下Quartz Java体系结构
  • 【自用25.1】C++-智能交友系统项目
  • Java【内部类】
  • 【在Linux世界中追寻伟大的One Piece】五种IO模型和阻塞IO
  • DRW的公式推导及代码解析
  • 维护左右边第一个小的值(滑动窗口)
  • 多态的概念
  • 终端文件管理神器 !!!【送源码】
  • Keras中MinMaxNorm约束的具体计算逻辑和方法解密
  • mysql学习教程,从入门到精通,SQL AND OR 运算符(12)
  • 【C++ Primer Plus习题】15.4
  • 二叉树--
  • 【阿一网络安全】如何让你的密码更安全?(三) - 散列函数
  • Linux系统:chgrp命令