简单了解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.hqwc.cn/news/308725.html

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

相关文章

GroundingDINO-根据文本提示检测任意目标

1. 背景介绍 GroundingDINO是一种新的SOTA零样本物体检测模型。在这篇文章中,我们将讨论Grounding DINO模型的优势,分析其具体的模型架构,并提供真实的测试样例。 闲话少说,我们直接开始吧! 2.零样本目标检测 大多…

IC入门必备!数字IC中后端设计实现全流程解析(1.3万字长文)

吾爱IC社区自2018年2月份开始在公众号上开始分享数字IC后端设计实现相关基础理论和实战项目经验,累计输出文字超1000万字。全部是小编一个个字敲出来的,绝对没有复制粘贴的情况,此处小编自己得给自己鼓鼓掌鼓励下自己。人生不要给自己设限&am…

【Mode Management】EcuM模块详细介绍

目录 1.功能概述 2.关键概念理解 3.EcuM模块对其他模块的依赖 3.1Mcu模块 3.2具有唤醒能力外设模块 3.3操作系统OS 3.4BSW调度器 3.5BswM模块 3.6应用软件组件SWC 3.7小结 4.EcuM模块的各个阶段介绍 4.1 STARTUP阶段 4.2 UP Phase阶段 4.3 SHUTDOWN阶段 4.4 SLE…

LeetCode 刷题日志

文章目录 1954. 收集足够苹果的最小花园周长思考:暴力枚举代码实现二分查找代码实现 1954. 收集足够苹果的最小花园周长 1954. 收集足够苹果的最小花园周长 难度: 中等 题目大意: 给你一个用无限二维网格表示的花园,每一个 整…

R503S指纹识别模块的指令系统(二)

18 获取随机数 GetRandomCode(0x14) 功能说明:令模块生成一个随机数返回给上位机 输入参数:无 返回参数:确认码 RandomCode(随机数) 指令代码:0x14 确认码0x00 表示获取成功&…

传统项目基于tomcat cookie单体会话升级分布式会话解决方案

传统捞项目基于servlet容器 cookie单体会话改造分布式会话方案 ##引入redis,spring-session依赖 <!--redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>&…

英文建筑图纸翻译工程图纸翻译

建筑图纸是以图形和文字为语言&#xff0c;详细描绘了工程建筑、机械、设备等结构、形状、尺寸及其他要求。对于建筑图纸翻译&#xff0c;表达必须清楚准确。那么&#xff0c;如何确保英文建筑图纸翻译工程图纸翻译的准确性&#xff1f; 首先&#xff0c;我们需要深入了解建筑图…

Stable Diffusion WebUI安装合成面部说话插件SadTalker

SadTalker可以根据一张图片、一段音频&#xff0c;合成面部说这段语音的视频。图片需要真人或者接近真人。 安装ffmpeg 下载地址&#xff1a; https://www.gyan.dev/ffmpeg/builds/ 下载ffmpeg-git-full.7z 后解压&#xff0c;将解压后的目录\bin添加到环境变量的Path中。 在…

Halcon颜色通道的处理decompose3/image_to_channels/channels _to _image

Halcon颜色通道的处理 文章目录 Halcon颜色通道的处理一. 图像的通道二. 访问通道1.访问通道2.获取通道的数量 三. 通道分离与合并1. decompose3算子2. image_to_channels 算子3. compose3算子4. channels_to_image算子 四. 处理RGB信息 由于彩色图像通常包含不止一个通道&…

LeetCode刷题--- 单词搜索

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述…

RS-485 RS-232 RS-422 区别和理解

RS-485&#xff0c;RS-232&#xff0c;RS-422区别和理解 目录概述需求&#xff1a; 设计思路实现思路分析1.概述2.区别 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a b…

ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享

引言 根据上周的计划&#xff0c;我简单制作了两套基于ORACLE Primavera P6 最新发布的23.12版本预构建了虚拟机环境&#xff0c;里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机&#xff0c;请先与Oracle Primavera销售代…