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

news2025/1/23 3:58:57

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.coloradmin.cn/o/1344147.html

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

相关文章

爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapyd+Gerapy 部署爬虫项目>

前言: 项目框架没有问题大家布好了的话,接着我们就开始部署scrapy项目(没搭好架子的话,看我上文爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>-CSDN博客) 正文: 1.创建主机: 首先gerapy的架子,就相当于部署服务器上的;所以…

[mysql 基于C++实现数据库连接池 连接池的使用] 持续更新中

目背景 常见的MySQL、Oracle、SQLServer等数据库都是基于C/S架构设计的,即(客户端/服务器)架构,也就是说我们对数据库的操作相当于一个客户端,这个客户端使用既定的API把SQL语句通过网络发送给服务器端,MyS…

【Bootstrap学习 day4】

Bootstrap5 列表组 使用Bootstrap创建列表 可以创建三种不类型的HTML列表: 无序列表—顺序无关紧要的项目列表。无序列表中的列表标有项目符号,例如。、等ul>li有序列表—顺序确实很重要的项目列表。有序列表中的列表项用数字标记,例如1、…

欧洲十大跨境电商平台,自养号测评下单的重要性及优势

在欧洲站,用户体量非常庞大,这与近几年人们的消费习惯密不可分,越来越多的人开始网购,据欧盟委员的最新调研显示,在欧盟,近一半(42%)的中小企业通过在线市场销售产品和服务。 所以,逸居海外给大…

Grafana无法发送告警消息的飞书webhook(机器人)

1.问题描述 Grafana无法向飞书机器人发送报警消息,实测使用Grafana自带的webhook也不好使,对于用飞书办公的程序猿非常不便,后来发现一个报警神器,开源免费,关键是好用 PrometheusAlert 2.PrometheusAlert安装 Prom…

ansible_角色的使用

本章主要介绍ansible中角色的使用 了解什么是角色独立地写一个角色使用角色系统自带角色地使用 1.了解角色 正常情况下,配置一个服务如 apache时,要做一系列的操作:安装、拷贝、启动服务等。如果要在不同的机器上重复配置此服务,需要重新执…

企业私有云容器化架构

什么是虚拟化: 虚拟化(Virtualization)技术最早出现在 20 世纪 60 年代的 IBM 大型机系统,在70年代的 System 370 系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Machine Monitor,VMM&#x…

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

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

【华为数据之道学习笔记】7-5通过感知能力推进企业业务数字化

感知数据在华为信息架构中的位置 感知可以应用于广泛的物理世界和数字世界,感知范围可以从人、物、作业、地点扩展到复杂环境。成熟的用例倾向于以物和人为中心。而在企业中,只有将感知数据纳入整体的数据体系中,才能发挥感知数据的价值。 华…

Java核心技术卷接口的实现与继承多态知识梳理总结

Java核心技术卷接口的实现与继承多态知识梳理总结 接口的概念 在Java程序设计语言中,接口不是类,而是对希望符合这个接口的类的一组需求。 form: Java核心技术卷 I(原书第11版) 基础知识 by 凯 S.霍斯特曼 在Java中&a…

园林机械部件自动化三维测量检测形位公差-CASAIM自动化三维检测工作站

随着园林机械的广泛应用,对其机械部件的精确测量需求也日益增加。传统的测量方法不仅效率低下,而且精度难以保证,因此,自动化三维测量技术成为了解决这一问题的有效途径。本文将重点介绍CASAIM自动化三维检测工作站在园林机械部件…

线性代数笔记1 12.30

学习视频: 1.4 行列式的计算(一)_哔哩哔哩_bilibili 以下内容,包含: 二阶三阶行列式 n阶行列式 行列式的性质 行列式按行展开

PiflowX组件-WriteToKafka

WriteToKafka组件 组件说明 将数据写入kafka。 计算引擎 flink 有界性 Streaming Append Mode 组件分组 kafka 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子kafka_hostKAFKA_HOST“”无是逗号…

9种卷积注意力机制创新方法汇总,含2024最新

今天咱们来聊聊卷积注意力机制。 相信各位在写论文的时候都苦恼过怎么更好地改模型,怎么更高效地提高模型的性能和泛化能力吧?我的建议是,不妨考虑考虑卷积注意力。 卷积注意力机制是一种通过关注输入数据中的不同部分来改进模型性能的方法…

数据结构之树 --- 二叉树

目录 定义二叉树的结构体 二叉树的遍历 递归遍历 非递归遍历 链式二叉树的实现 二叉树的功能接口 先序遍历创建二叉树 后序遍历销毁二叉树 先序遍历查找树中值为x的节点 层序遍历 上篇我们对二叉树的顺序存储堆进行了讲述,本文我们来看链式二叉树。 定…

台式电源质量如何检测?纳米软件为您科普

一、外观检测 观察台式机电脑电源外观是否有损伤、烧焦,电源线是否有破损、短线的情况。观察电源的电压、电流、功率等参数,是否符合台式机电脑。 二、直观检测 开通电源,如果所有指示灯不亮,风扇没有声音,电源损坏的可…

yolov5 主要流程

1.介绍 本文包含了有关yolov5目标检测的基本流程,包括模型训练与模型部署,旨在帮助小伙伴们建立系统的认知💖💖 YOLO是 "You only look once "的首字母缩写,是一个开源软件工具,它具有实时检测…

Mysql高阶语句及存储过程

目录 空值(NULL) 和 无值() 的区别: 正则表达式: 存储过程: 创建存储过程: 存储过程的参数: 存储过程的控制语句: mysql高阶语句 case是 SQL 用来做为if,then,else 之类逻辑的…

php-fpm运行一段时间,内存不足

目录 一:原因分析 二:解决 三:观察系统情况 php-fpm运行一段时间,内存不足,是什么原因呢。 一:原因分析 1:首先php-fpm的配置 (1)启动的进程数 启动的进程数越多,占用内存越高; 2:其次…

Android studio CMakeLists.txt 打印的内容位置

最近在学习 cmake 就是在安卓中 , 麻烦的要死 , 看了很多的教程 , 发现没有 多少说对打印位置在哪里 , 先说一下版本信息 , 可能你们也不一样 gradle 配置 apply plugin: com.android.applicationandroid {compileSdkVersion 29buildToolsVersion "29.0.3"defau…