渗透之sql注入联合查询的注入

news2025/2/22 11:52:13

sql注入产生的原因:


        由于程序过滤不严谨,导致用户有一些异常输入,最终触发数据库的查询。所以会出现sql注入这个问题。有些恶意的人就会利用这些信息导致数据库泄露。

	注意:一般我们存在注入点我们会查询管理员的账号和密码;但是我们现在是在前端页面下的,我们并不知道管理员的数据在哪个数据库哪张表下的。(我们需要知道在哪个数据库,哪张表,哪个字段下;这个是前提)
	
	当我们发现一个注入点是首先将前置条件查询出来:
			1.mysql的版本号 	select version();
			2.mysql的权限(用户),如果当前为root那么入侵成功率就很高。  select user();
			3.当前所在的数据库
            
问题1:
	你现在有普通用户的权限,查到了管理员的账号和密码:1.管理员的后台找不到 2.管理员的密码破解不了此时该怎么办?
	回答:挖掘存储型XSS

第一关实际操作:

1:前端输入                

        在这里我们搭建了一个sql注入的靶场,如下图所示,在web的前端页面中使用id来接受用户传递进来的值。将值传递给后端进行处理。

后端处理代码:如下图可知前端web页面输入的值由id传递给后端的sql代码中处理。

2:逃逸单引号

        我们这里就可以思考如何控制用户的输入触发数据的额外查询。要是传递进来的sql语句能够被执行就好了。但是传递进来的所有值都被单引号包裹,全部被变成了字符串,这是我们就要思考如何逃出单引号的包围。

当我们传递进来的不是1,而是1’  时:就会报错,报错的原因就是多了一个单引号,如下图:

       

        这里提示我们有语法错误,那么就意味着我们已经逃逸出了单引号,但是后面还有一个单引号所以会报错。此时我们需要闭合单引号。我们可以使用注释将后面的单引号注释掉:

我们这里的注入点为 1'  ,但是后面还有一个单引号,我们需要将后面的另一个单引号注释掉;
mysql中的三种注释方法:
		“-- ”:注意后面的空格在web的url中我们需要写为“+”,“--+”
		#
		/* */

如下图:并没有报错,说明我们找到了注入点并可以成功的闭合,我们就可以在此处插入sql注入。

我们查看后端页面:

3.使用联合查询进注入

爆破列数:

        使用联合查询需要有一个前置条件,两个表的列相同。我们怎么能够知道这个表有几列?

解决方法:

此时我们就需要一个函数 order by:
                        order by 是排序的意思,通常来说我们是通过字段来排序的,但是order by后面也可以以跟数字;
                        order by 1 :表示根据第一列来排序
                        order by 2 :表示根据第二列来排序

如下图,如果order by后面的数字大于真实的列数时就会报错:我们就可以查出列数:

在sql靶场中进行操作:

当order by  3时页面正常显示,当order  by 4时页面报错,说明我们当前所处的表有3列:

联合查询

我们前面已经知道这张表的列数了,所以这里写三个参数。

如上图,联合查询后还是没有任何变化,原因:

  • 原因:联合查询的条件是前面的条件为假,后面的联合查询才能为真,就意味着前面的已经查到了所以后面的就不执行了。此时我们需要使前面的条件为假,我们有两种方案:
            1:查一个不存在的id
            2:第二种使使用负号

如下图:当传递进来的id为负数,前面的为假,联合查询后面的为真。在name和password字段上就显示2,3。

这里我们发现,前端页面显示的是2,3字段,说明数据就出在这两个字段上。“1”也可以出数据但是没法在前端页面上显示。

此时可以就可以控制2,3字段的内容:

查数据库名,版本号,用户:

将2,3字段替换:查数据库和版本

此时我们就查出了数据库和数据库的版本:

查用户:

爆破表名:

既然已经知道注入点在2,3字段,我们从该字段下手。

之前我们知道自己的数据库名,叫做: security。那么现在我们需要知道本数据库下有哪些表。

此外我们知道数据库存在一个系统自带的数据库: information_schema ;其中包含表的信息。

我们就可以通过查询这个数据库中的信息吧当前数据库下的表全查出来:

注意:基本上mysql中都会存在information_schema这个系统自带的数据库。但是这个数据库只有root用户才能访问,由于我们上面已经查询到了当前的用户为root,所以我们就直接利用它。如果不是root用户还有其他的数据库可以替代它。

我们去查看information_schema数据库具体信息:其中叫tables表中有我们想要的信息,我们可以使用这张表查询我们想要的信息:

开始爆破表名:如下图就爆破出了当前数据库下的所有表名。

在下面几张表中最可能储存用户和密码信息的为users表。但是我们不知道该表的字段名,所以我们继续利用information_schema来爆破字段名。

id=-1%27%20union select 1,group_concat(table_name),3  from information_schema.tables   where table_schema="security"  --+

爆破列名:

在information_schema中,列名在:columns这张表中。

开始爆破表名:如下图就吧列名爆破出来了。

id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema="security" and table_name="columns"--+

爆破具体值:

因为我们现在知道表名以及字段名,我们就可以直接查询(users这张表在本数据库下面):

d=-1' union select 1,group_concat(username,0x3a,password),3 from users--+        

到此,我们成功的完成了一次注入!

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

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

相关文章

【C 数据结构】深度优先搜索、广度优先搜索

文章目录 【 1. DFS 深度优先搜索 】1.1 基本原理1.2 C 实现 【 2. BFS 广度优先搜索 】2.1 基本原理2.2 C 实现 【 3. 深度优先生成树、广度优先生成树 】【 4. 深度优先生成森林、广度优先生成森林 】4.1 深度优先生成森林4.2 广度优先生成森林 对存储的图中的顶点进行遍历搜…

P6技巧-关于汇总项目Summarize的使用

前言 不知你在使用P6项目时是否察觉到这么一个有趣的现象,在打开一个项目(展开详细任务)时,在项目页签下可以看到该项目能反馈此时项目的总体进展及完成时间等内容,而当项目关闭时,其前面所展示的进展信息…

2.1.5 EtherChannel 简介

1、EtherChannel 简介 EtherChannel (以太网通道)是由 Cisco 公司开发的、应用于交换机之间的多链路捆绑技术。它的基本原理是将两台设备间多条以太网链路捆绑在一起组成一条逻辑链路,形成一个端口通道(PortChannel)&a…

selenium 4.x入门篇(环境搭建、八大元素定位)

背景 Web自动化测现状 1. 属于 E2E 测试 2. 过去通过点点点 3. 好的测试,还需要记录、调试网页的细节 一、selenium4.x环境搭建 一键搭建 pip3 install webdriver-helper 安装后自动的完成: 1. 查看浏览器的版本号 2. 查询操作系统的类型…

生活服务推出品牌实惠团购,覆盖五一假期“吃喝玩乐”多场景

4月26日,抖音生活服务平台上线“跟着大牌过五一”活动会场,携手22家连锁品牌商家,于“五一”前推出优价团购和时令新品,覆盖“吃喝玩乐”多重购物需求,助力假期消费。同时,伴随各地涌现的文旅热潮&#xff…

VUE的生命周期图和各函数

函数 beforeCreate(){ }, created(){ }, beforeMount(){ }, mounted(){ }, beforeUpdate(){ }, updated(){ }, beforeDestroy(){ }, destroyed(){ } 创建时生命周期图 运行时生命周期图

Linux vi\vim编辑器

vi/vim编辑器 一、vi\vim 编辑器的三种工作模式1.命令模式(Command mode)2.输入模式(Insert mode)3.底线命令模式(Last line mode) 二、参考 vi\vim 是 visual interface 的简称,是 Linux 中最经…

docker 虚拟化与docker的概念

一、云计算的三种服务模式 laas、pass、saas 1.1 IaaS: Infrastructure-as-a-Service(基础设施即服务) 第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用&#xff0c…

Linux网络-文件传输协议之FTP服务(附带命令及截图)

目录 一.FTP简介 二.FTP的数据模式 1.主动模式 2.被动模式 3.两种模式比较 三.安装配置vsftpd 1.安装vsftpd 1.1.安装前关闭防火墙 1.2.安装vsftpd 1.3.查看 1.4.备份 2.配置 3.重启后生效 四.相关实验 1.以win为例 1.1.设置并测试测试连通性 1.2.在终端里创建…

【人工智能基础】聚类实验分析

实验环境:anaconda、jupyter notebook、spyder 实现用到的类库:numpy、matplotlib、scikit-learn k均值聚类(K-MEANS) k均值聚类的原理: 选定k个聚类中心把数据集中距离聚类中心i最近的点都归属到一个簇根据每个簇中…

【Linux开发 第十二篇】搭建JavaEE环境

搭建开发环境 搭建javaEE环境 搭建javaEE环境 在Linux下开发JavaEE需要安装软件包: 安装jdk 安装步骤: 在opt目录下创建jdk目录通过xftp上床到jdk目录中进入到jdk目录中,解压jdk压缩包在/usr/local下创建java目录将解压完成的jdk文件移动…

Docker的介绍及应用

1.什么是Docker 我们在部署大型项目的时候,肯定会遇到这种问题,大学项目组件较多,运行环境复杂,部署时会碰到一些问题:例如node、redis、mysql等这些应用都有自己的依赖和函数库。这种复杂的依赖关系很容易出现兼容问…

笔试刷题-Day11

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、游游的水果大礼包 题目链接:https://ac.nowcoder.com/acm/problem/255193 类型:求一个表达式的最值(并不是贪心,因为该题条件太少&…

毕业设计注意事项(嘉庚学院2024届更新中)

1.开题 根据学院发的开题报告模板完成,其中大纲部分可参考资料。 2.毕设以及实习 2.1 毕设 根据资料中的毕设评价标准,对照工作量 2.2 实习材料提交 2.2.1 校外实习 实习前:根据学院要求,填写好实习承诺书,实习单位…

贝叶斯统计实战:Python引领的现代数据分析之旅

贝叶斯统计这个名字取自长老会牧师兼业余数学家托马斯贝叶斯(Thomas Bayes,1702—1761),他最先推导出了贝叶斯定理,该定理于其逝世后的1763年发表。但真正开发贝叶斯方法的第一人是Pierre-Simon Laplace(1749—1827),因此将其称为…

清华同方电脑c盘满了怎么清理?别慌,学会这几个实用技巧

随着日常使用电脑,C盘(通常是系统盘)往往会积累大量的文件、程序和系统缓存,导致磁盘空间逐渐减少。当C盘空间不足时,电脑的性能可能会受到影响,甚至导致一些程序无法正常运行。对于清华同方电脑的用户来说…

2000.1-2023.8中国经济政策不确定性指数数据(日度、月度)

2000.1-2023.8中国经济政策不确定性指数数据(日度、月度) 1、时间:日度:2001.1.1-2022.06.17,月度2000.1-2023.8 2、指标:CNEPU(经济政策不确定性指数) 3、来源:China…

[BJDCTF 2020]base??(古典密码)

题目: 从题目我们看出dict是一个python的字典,但与原始的base64的表不同,所以我们想到通过替换原始的表,来对密文解密。 my_dict{0: J, 1: K, 2: L, 3: M, 4: N, 5: O, 6: x, 7: y, 8: U, 9: V, 10: z, 11: A, 12: B, 13: C, 14:…

2024五一杯ABC题资料合集+代码+参考论文!!!

一.赛题思路 (赛题出来以后第一时间在群内分享) 二.比赛日期和时间 比赛开始时间:2024年5月1日(周三)10;00 比赛结束时间:2024年5月4日(周六)12:00 三.将在明天分享的资料合集如下 4.我们这边会分享22年的题目完整全部的过程 5.数学建模的29个通用模型及MATLAB…

吴恩达2022机器学习专项课程(一)7.2 逻辑回归的简化成本函数

问题预览/关键词 本节课内容逻辑回归的损失函数简化之后的形式是?为什么可以简化?成本函数的通用形式是?逻辑回归成本函数的最终形式是?逻辑回归为什么用对数损失函数计算成本函数?为什么不直接给出逻辑回归损失函数的…