高权限注入跨库注入

news2024/10/7 4:22:37

简介

上篇文章中我们讲述了如何进行手工注入,也通过墨者学院的靶场,真实的感受了SQL注入的感觉。这篇文章我们将继续介绍SQL注入。

高权限注入

含义

世界上有千千万万的网站,我们也都知道网站需要部署在服务器上,但是如果一台服务器上只部署一个网站,那么对于服务器将的资源将会是一个巨大的浪费。毕竟不是每个网站都是需要整台服务器发挥所有性能,许许多多的一些网站只需要比较少的服务器资源和配置就可以流畅的运行。本着对资源的节约,所以一台服务器上大多数情况下不会只存放一个网站,毕竟一台服务器的价格也是不低。

既然一台服务器上可能会挂着许多的网站,那么每个网站就都会有不同的管理员。我们必须规定每个网站对应的管理员只能对自己网站的数据进行操作。也就是需要对其进行权限的设置。

我们知道了一台服务器上会有许多的网站,并且现在绝大多数的网站必须都要使用数据库。每个网站都会有一个管理员,但是如果我们能找到比管理员还要高级别的用户,那么就有可能实现高权限的注入。

MySQL最高权限用户root

在MySQL数据库中,root是拥有最高权限的用户。

跨库注入

上文中我们了解到了MySQL中最高权限的用户root,那么当我们可以使用root用户时,就可以对服务器上数据库中的各个不同网站的数据进行任意的修改。

为什么要用跨库注入?

有人可能会问,我们为什么要进行跨库注入呢?我只要渗透目标网站就好了,为什么还需要进行跨库注入去在别的站点进行数据的修改或者获取呢?

其实我们之所以要使用跨库注入,原因可不是为了去别的网站搞破坏,我们就是为了渗透入侵目标网站。

有的时候我们会遇到目标网站防护做的比较好,很难找到突破口对其进行入侵。这时呢,我们就可以对目标网站所在的服务器下下功夫。如果说恰好你目标网站所在的服务器上有那么几个防护做的非常差的,或者是可能没什么人管理的站(也就是我们俗称的旁站),我们就可以先对这个网站进行入侵,在拿到高的权限后,在进行跨库注入对我们的目标网站进行入侵。

  • 旁站:指的是部署在同一台服务器上的网站,他们互相被称为旁站

实践

我们通过sqlilabs进行跨库注入的演示

  • 如果你没有安装sqlilabs靶场,可以参考我的这篇文章:sqlilabs靶场安装

我们使用Less-2(第二关)作为演示

image-20230413013447193

我们首先试验一下该网站是否存在SQL注入漏洞

  • 该靶场就是SQL注入的靶场,这一步看似不重要,但是仍希望大家能够不要省去这个步骤,目前你是在靶场中练习,理所应当认为就是有漏洞的,但是当你去挖掘漏洞时,大多数的情况下我们是进行黑盒测试,所以说寻找漏洞的步骤就是其中很关键的一步,毕竟发现问题往往比解决问题要困难,希望大家能够保持良好的习惯

在地址栏输入?id=1

image-20230413013737185

我们发现当我们通过Get方式传入id时,网站对我们传递的参数,有获取并代入数据库查询,并返回相应的数据,说明可能存在注入点

  • 有SQL注入存在的地方(注入点)往往就是对用户传入的参数有进行获取并且代入数据库查询
  • 因为我们传入的参数可以带入查询,就可以不传入正常的参数,而是传入恶意的攻击语句

我们在?id=1后加上 and 1=2

image-20230413014020095

发现页面饭会出现错误,说明此处存在注入点。也就是说我们可以进行SQL注入了

SQL注入的开始往往都是需要猜解有几个字段

  • 输入order by 1
  • 输入order by 2
  • 输入order by 3

当然你也可以从比较大开始试,并不一定要从1开始。

image-20230413014320928

当我们输入order by 4时页面报错,说明字段数为4-1=3

这时我们将id=-1,并且使用联合查询

  • id=-1的操作是为了让联合查询的前半句为假
  • ?id=-1 union select 1,2,3

image-20230413014507679

查看返回的页面可知,我们可以在2和3处进行敏感信息的查询,我们查询数据库连接的用户

  • ?id=-1 union select 1,user(),3

image-20230413014641077

发现是root,也就是说我们可以通过该网站对数据库中的其他库(不属于该网站的)进行注入

  • 这也就是我们说的跨库注入

想使用SQL语句的话我们还需要知道数据库名、表名还有字段名

我们先查询服务器上的所有数据库名

  • ?id=-1 union select 1,schema_name,3 from gourp_concat(information_schema.schemata)
    • 一定不要忘记group_concat,否则只会出现一个数据库名

image-20230413014942370

服务器上所有的数据库名我们都有了,那么就可以选择其中的库进行跨库注入

这里可能有的人会问我怎么知道,哪个网站对应的数据库叫什么?

一般说来,数据库的名字和网站的名字会是有关联的。但是如果真的遇到脑子不好的管理员乱命名,我们也可以通过逐个尝试的方法,对比里面的数据,来确定数据库对应的网站。

我们这里选择sqlinsert这个网站的数据库进行跨库注入

  • 该数据库是我额外建立的数据库用于进行跨库注入实验

获取sqlinsert数据库下的所有表名

  • ?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_shchema=‘sqlinsert’

image-20230413020019583

如果说这一步报错了,应该是遭到了魔术引号的转移,可以查看:sqlilabs手工注入遇到魔术引号解决方法

我们查询到表名之后,发现一张比较敏感的表——user

  • user一般存放的是用户或者管理员的信息
  • 当然也会有admin等命名方式

所以这时我们可以针对user表进行查询,需要查询user这张表,我们还需要知道user表中的字段名

  • ?Id=-1 union select 1,group_concat(column_name),3 from information_schmea.columns where table_name=‘user’ and table_shcema=‘sqlinsert’
  • 该处加上了and,是为了避免别的库中也有user这张表,查询成别的库中的user表

image-20230413020524080

得知了user表中的字段名后,我们就可以查询user中的数据了

  • ?id=-1 union select 1,group_concat(username),group_concat(password) from sqlinsert.user

image-20230413020631565

至此我们通过sqlilabs网站对sqlinser网站进行跨库注入就完成了。

结束语

希望我的文章都够帮助到你 😃

已同步更新至个人博客:https://www.hibugs.net/security/vulnerability/sql-insert/lamar/high-authcross-insert

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

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

相关文章

C++基础知识-----命名空间

本期开始我们来对C进行学习 目录 1.C关键字 2.命名空间 3.C的输入与输出 1.C关键字 C总计63个关键字,C语言32个关键字 asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcase…

摘得重磅奖项,发表精彩演讲,深度参编报告!美创闪耀CSA GCR大会

4月13日,第六届云安全联盟大中华区大会在上海举办,大会由联合国数字安全联盟、上海市经济和信息化委员会、上海市委网络安全和信息化委员会办公室、上海市普陀区人民政府指导,云安全联盟大中华区主办。 作为零信任数据安全践行者,…

java银行ATM机模拟系统dzkf94

目录 摘要 I Abstract II 第1章 绪论 1 1.1 ATM简介 1 1.2 ATM发展 1 1.3 开发意义 1 1.4 论文的组成 1 1.5 本章小结 2 第2章 系统分析 3 2.1 功能需求分析 3 2.2 业务流程分析 4 2.3 数据流程分析 5 2.4 本章小结 7 第3章 系统开发技…

车载网络 - Autosar网络管理 - 常用缩写

为了方便大家日常工作中的使用和交流,每块专业规范或者文章中,都会有或多或少的缩写使用,然而如果一段时间没使用,经常会忘记这些缩写到底代表的是什么意思,为了方便后续内容的介绍,也为了我自己后面忘记后…

【数据分析之道-NumPy(四)】numpy广播机制

文章目录 专栏导读1、广播机制2、一维数组和二维数组的广播3、二维数组和三维数组的广播4、标量和数组的广播5、形状不兼容的数组不能进行广播专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》,本专栏针对…

MySQL---数据类型

文章目录前言一、数据类型分类二、数值类型1.tinyint类型2.bit类型三、小数类型1.float2. decimal三、字符串类型1.char2.varchar3.char和varchar比较四、日期和时间类型五、enum和set我们如何找到性别是男或者女呢?我们如何找到爱好有rapper呢?总结前言 正文开始!!! 一、数…

MyBatis 批量插入的正确姿势

近日,项目中有一个耗时较长的Job存在CPU占用过高的问题,经排查发现,主要时间消耗在往MyBatis中批量插入数据。mapper configuration是用foreach循环做的,差不多是这样。 这个方法提升批量插入速度的原理是,将传统的: INSERT INTO `table1` (`field1`, `field2`) VALUES …

Linux服务器怎么关闭防火墙?

Linux服务器怎么关闭防火墙? 在很多情况下,防火墙都会组织一些端口号的通讯。 比如我们的tomcat,nginx,redis明明安装的没问题,但在外部就是访问不了,那很有可能就是防护墙的原因了。我是艾西,…

protobuf编码格式解析

示例 假如定义一个如下的protobuf类型 message Person {required string user_name 1;optional int64 favorite_number 2;repeated string interests 3; }将其赋值为: user_name : "Martin" favorite_number : 1337 interests:"daydrea…

pyLoad远程代码执行漏洞复现(CVE-2023-0297)

1、产品简介 pyLoad是一个用 Python 编写的免费和开源下载管理器,可用于NAS、下一代路由器、无头家庭服务器以及任何能够连接到互联网并支持 Python 编程语言的设备。 2、漏洞概述 pyLoad 存在代码注入漏洞,未经身份验证的攻击者可以通过滥用 js2py 功能…

c/c++:类型限定符,printf输出格式,putchar,scanf,getchar

c/c:类型限定符,printf输出格式,putchar,scanf,getchar 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所知道的周边的会c的同学&am…

结构方程模型(SEM)高阶应用系列

结构方程模型(Structural Equation Modeling)是分析多变量间因果关系的利器,在众多学科领域具有巨大应用潜力。我们前期推出的《基于R语言结构方程模型》通过结构方程原理介绍、结构方程全局和局域估计、模型构建和调整、潜变量分析、复合变量…

docker-compose安装prometheus告警系统

docker-compose安装Prometheus一、概述一、docker-compose二、配置文件一、概述 本文只有监控与告警的安装、告警发送、发送模版的配置。没有数据展示监控数据UI工具 一、docker-compose 1)docker-compose.yaml version: 3.0 services:#1.prometheusprometheus:…

springcloud学习总结

springcloud 构建微服务项目步骤 导入依赖编写配置文件开启这个功能 Enablexxx配置类 于2023年2月24日下午17点38分开始学习于2023年3月17日晚上20点26分学完总结代码地址:https://gitee.com/liang-weihao/StudySpringcloud学习笔记地址:https://www.…

【Linux-MYSQL】数据库的使用

目录 1.数据库介绍 🌈1.1数据库的分类 🌈1.2存储引擎 2.数据库的操作 🌈2.1创建数据库 ​编辑👿 1.查show databases; 👿2删除 drop database库名 👿3.创建 create 查看创建数据库的详细信息 &…

朝花夕拾 - 卷王的自白(光头祭天,法力无边》

一、震撼开场 做一个卷王 ta 有什么错,无非就是 ——「秃」了那么一点点!!!咳咳咳,一一回复:自愿的没有想不开没有考到寺庙心态正常……如果非要给这次的行为贯穿一个理由,那就是「下周四就 28 …

Nfinity.io ——Web3.0创新性内容创作和社交一站式平台,引领NFT社交新时代

Nfinity.io 是什么? Nfinity.io 是一个Web3.0时代创新性内容创作和社交一站式平台,旨在彻底改变创作者、平台和粉丝的互动关系。该平台允许用户在同一个平台访问他们在 TikTok、YouTube 和 Twitter 等热门社交平台上喜欢/关注的创作者。此外&#xff0c…

图形系统:简简单单学习WindowManagerService的启动流程

作者:新小梦 在系统启动流程中,Zygote进程通过fork自己来创建SystemServer进程。SystemServer进程的主要职责之一就是创建SystemServiceManger,使自己成为服务的注册中心,并启动三种不同类型的服务:引导服务、核心服务…

mqttx read econnreset异常排查

mqtt 会话 read econnreset 使用mqttx连接mqtt服务器时出现READ ECONNRESET的排查 前段时间公司新增了mqtt服务器,在我们初步测试的时候没有问题,但是随着连接数量增多,后续几天连续间隔出现READ ECONNRESET,导致项目无法正常使…

Unity Batching 批处理

Unity Batching 批处理 了解批处理前先了解下 Draw Call 要了解 Draw Call 需要先了解游戏引擎是如何把物体图像绘制到屏幕上的。 (1):渲染流水线 渲染流水线的任务为从一个 二维、三维场景开始,最终渲染为一张二维图像,显示在屏幕上。 计算…