简单了解SQL堆叠注入与二次注入(基于sqllabs演示)

1、堆叠注入

使用分号 ';' 成堆的执行sql语句

以sqllabs-less-38为例

?id=1'

简单测试发现闭合点为单引号

?id=1' order by 3
?id=1' order by 4

使用order by探测发现只有三列(字段数)

尝试简单的联合注入查询

?id=-1' union select 1,database(),user()--+

可行 

查询id为2的用户名和密码

?id=2

接下来我们使用堆叠注入对id为2的用户的密码进行修改

?id=1';update users set password='myon' where id=2 --+

首先使用单引号将前面语句进行闭合,该语句会正常查询id为1的用户信息;

之后使用分号结束该语句,后面继续追加我们还想执行的语句(更新用户信息)

这里的users、password等我们是可以通过联合注入查出来的,因此这里我就直接用了

我们再次查询id为2的用户信息

?id=2

可以看到密码已经被修改 

这个就是简单的堆叠注入,其实就是使用分号将语句隔开,使得我们可以一次执行多条语句。

2、二次注入

指已存储(数据库、文件)的用户的输入被读取后再次进入到 SQL 查询语句中导致的注入

成因:系统没有对已经存入数据库的数据做检查

以sqllabs-less-24为例

在我们的数据库里有一个用户名为admin,密码为admin的用户

假设我们只知道用户名为admin,并不知道密码

如果输入错误的密码

登录失败

接下来我们通过二次注入实现修改admin的密码

由于页面给我们提供了注册的功能

我们先注册一个用户名为 admin'# 的用户,密码这里设为123

注册成功

使用该账号登录

注意我们现在的身份是admin'#

提示我们可以修改密码

我们修改密码,假设改为12345

提示密码更新成功

我们login out退出

接下来神奇的东西发生了

我们尝试登录admin,密码即为我们刚才修改的密码12345

竟然以admin的身份登录成功了

换句话说,我们刚才对注新册的 admin'# 用户进行密码修改,其实是修改了 admin 的密码

查看本地数据库,也确实如此,也可以看到我们创建的用户和密码

在这个过程中,我们正常创建新用户其实是没有任何问题的,问题出在修改密码,此时查询的本该是用户 admin'# 的信息,但是由于 '#  闭合了前面,并且将后面的信息进行了注释,导致查到的用户名为 admin ,由于后面关于核对admin密码的信息也被注释掉了,即没有进行校验,从而误认为是admin在进行密码修改。

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

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

相关文章

开放网络+私有云=?星融元的私有云承载网络解决方案实例

在全世界范围内的云服务市场上,开放网络一直是一个备受关注的话题。相比于传统供应商的网络设备,开放网络具备软硬件解耦、云原生、可选组件丰富等优势,对云服务商和超大型企业有足够的吸引力。 SONiC作为开源的网络操作系统,使得…

Debian12升级openssh-9.6p1

下载openssh-9.6p1 https://www.openssh.com/ftp.html tar xvf openssh-9.6p1.tar.gz安装编译器和依赖库 apt-get install gcc apt-get install zlib1g-dev apt-get install libssl-dev apt-get install make编译 ./configure make 安装 make install为了使现在版本生效卸…

uni-app uni-app内置组件

锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…

机器学习之主成分分析(Principal Component Analysis,PCA)案例解析附代码

概念 主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术,用于减少数据集维度并保留数据集中的主要特征。它通过线性变换将高维数据投影到低维空间,同时尽量保留数据集中的信息。 PCA的目标是找到数据中最重要的方向,即方差最大的方向,这些方向被称为…

【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(二)

数组 什么是数组? 字面理解就是 数字的组合 其实不太准确,准确的来说数组是一个 数据的集合 也就是我们把一些数据放在一个盒子里面,按照顺序排好 [1, 2, 3, hello, true, false]这个东西就是一个数组,存储着一些数据的集合 …

python测试工具: 实现数据源自动核对

测试业务需要: 现有A系统作为下游数据系统,上游系统有A1,A2,A3... 需要将A1,A2,A3...的数据达到某条件后(比如:A1系统销售单提交出库成功)自动触发MQ然后再经过数据清洗落到A系统,并将清洗后数据通过特定…

css 用多个阴影做出光斑投影的效果 box-shadow

css 用多个阴影做出光斑投影的效果 box-shadow 你首先需要知道的一点是 box-shadow 可以接收多个值,也就是可以设置多个阴影,这样就可以做一个类似光斑投影的效果。 一、效果 二、代码 里面用到了我一些 scss 工具方法,不过不影响&#xf…

Linux升级指南:保持系统安全和高效运行

Linux系统的升级是确保系统稳定和安全性的重要步骤。本文将介绍Linux系统升级的基本概念,以及具体的操作步骤和注意事项,以帮助用户顺利升级他们的Linux系统。 Linux操作系统以其稳定性和可定制性而闻名,它经常通过升级来提供新的功能、修复漏…

在使用tcp长连接时,是否还需要再引入重发机制?

一 什么是tcp长连接? 在TCP(Transmission Control Protocol)中,长连接是指在通信过程中保持连接状态的一种方式,相对于短连接而言。长连接通常用于需要频繁通信的场景,以减少连接建立和断开的开销。在长连接…

Java解决正整数和负整数的最大计数

Java解决正整数和负整数的最大计数 01 题目 给你一个按 非递减顺序 排列的数组 nums ,返回正整数数目和负整数数目中的最大值。 换句话讲,如果 nums 中正整数的数目是 pos ,而负整数的数目是 neg ,返回 pos 和 neg二者中的最大…

秒杀系统的设计思路(应对高并发,超卖等问题的解决思路)

首先我们先看一下设计秒杀系统时,我们应该考虑的问题。 解决方案: 一.页面静态化结合CDN内容分发 前端把能提前放入cdn服务器的东西都放进去,反正把所有能提升效率的步骤都做一下,减少真正秒杀时候服务器的压力。 秒杀活动的页面…

达达快送无代码API:电商平台广告推广与客服系统一体化

快速实现高效对接:无代码开发的集成优势 在电商行业竞争日益激烈的现状下,快速对接高效的即时配送服务已成为企业取胜的关键。无代码开发为电商平台与达达快送之间的连接提供了便利,无需深入编程知识,企业即可通过图形化界面轻松…

九州金榜|家庭教育中如何培养优秀的孩子

家庭是孩子心中最大的底气,而家庭的形态也就构成孩子未来的模样。所以给为孩子提供最好的教育,就是为孩子创建一个学习气氛浓厚,成员关系美满的家庭,它会成孩子成长道路上最大的助力,最温暖的港湾。 北京大学校长蔡元培…

Windows Sockets 2 笔记

文章目录 一、Winsock简介二、Windows中Winsock对网络协议支持的情况三、使用Winsock3.1 关于服务器和客户端3.2 创建基本Winsock应用程序3.3 初始化Winscok3.3.1 初始化步骤3.3.2 初始化的核心代码3.3.3 WSAStartup函数的协调3.3.4 WSACleanup函数3.3.5 初始化的完整代码 3.4 …

Spring Boot学习随笔- 集成MyBatis-Plus,第一个MP程序(环境搭建、@TableName、@TableId、@TableField示例)

学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备! 引言 MyBatis-Plus是一个基于MyBatis的增强工具,旨在简化开发,提高效率。它扩展了MyBatis的功能,提供了许多实用的特性,…

Visual Studio 配置DLL

我们在用Visual Studio进行开发时,如果没有正确配置DLL,就会出现类似“丢失***.dll”的错误。DLL配置有哪些方法? 1、手动复制 将dll文件拷贝到生成的.exe所在的文件夹里 2、配置环境 在右键属性->配置属性->调试->环境&#xf…

Linux之定时任务调度

crond crond是Linux系统中的一个守护进程,主要用于周期性地执行某种任务或等待处理某些事件。而crondtab是配套的工作,用于定时任务的设置。 语法 crontab [选项]常用选项 入门案例 执行crontab -e命令输入任务到调度文件中 */1 * * * * ls -l /et…

鸿蒙原生应用再添新丁!爱奇艺入局鸿蒙

鸿蒙原生应用再添新丁!爱奇艺 入局鸿蒙 来自 HarmonyOS 微博12月29日消息,#爱奇艺完成鸿蒙原生应用Beta版#作为中国头部在线视频平台,爱奇艺 完成鸿蒙原生应用Beta版,将以丰富的正版高清视频资源促进鸿蒙生态的进一步繁荣&#x…

准备用vscode代替sourceinsight

vscode版本1.85.1 有的符号,sourceinsight解析不到。 看网上说vscode内置了ripgrep,但ctrlshiftf在文件里查找的时候,速度特别慢,根本不像ripgrep的速度。ripgrep的速度是很快的。 但今天再查询,速度又很快了&#x…

双击编辑el-table的单元格数据

(1) el-table刷新要求绑定el-table的key要发生变化才会刷新 (2) 单元格双击事件 cell-dblclick (3) 往row里面添加一个属性来唯一标识某一行的数据,双击时使这特殊属性为true,输入框失去焦点时则设置特殊属性为false,并且输入框的显示与隐藏…