【网络安全】mysql数据库提权

news2024/11/17 3:53:35

数据库提权

    • 数据库提权适用场景
    • 前提条件
    • 提权步骤
      • 如何探查数据库服务是否启动
    • mysql提权
      • mysql 获取数据库最高权限账号密码方法
          • 1.读取网站配置文件
          • 2. 读取数据库存储或备份文件
          • 3. 脚本暴力破解
      • 利用udf提权
          • udf定义
          • udf提权原理
          • udf常用函数
          • 1. 获取mysql版本号
          • 2.udf.dll放置到被攻击服务器中
            • udf.dll获取方式:
          • 创建自定义函数,执行命令
      • 利用MOF提权

数据库提权适用场景

当利用系统溢出未达到提权目的则可以利用数据库进行提权

系统溢出提权:https://blog.csdn.net/qq_41158271/article/details/130510463?spm=1001.2014.3001.5501

前提条件

1. 数据库服务启动
2.知道数据库最高权限的账号密码

提权步骤

服务探针
信息手机
权限利用
获取权限

如何探查数据库服务是否启动

  1. 通过探针判断有数据库相关的服务
  2. 通过端口扫描看是否开启对应端口
  3. 通过命令段看是否开启相关服务
  4. 通过浏览文件或文件夹判定是否安装相关数据库

常见数据库端口
MySql数据库 ,默认端口是: 3306;
Oracle数据库 ,默认端口号为:1521;
Sql Server数据库 ,默认端口号为:1433;
DB2数据库, 默认端口号为:5000;
PostgreSQL数据库, 默认端口号为:5432;
Redis数据库,默认端口号:6379;
Memcached数据库,默认端口号:11211 ;
MongoDB数据库,默认端口号:27017;

mysql提权

mysql 获取数据库最高权限账号密码方法

1.读取网站配置文件

在这里插入图片描述

2. 读取数据库存储或备份文件

获取存储账号密码的MYD文件

原理:
mysql数据库密码存在于mysql.user表中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 脚本暴力破解

工具爆破属于远程连接爆破,而root用户不支持外联,所以得使用脚本上传到被攻击服务器上进行爆破
什么语言开发的就找什么语言的脚本

在这里插入图片描述

利用udf提权

udf定义

UDF (user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充。

udf提权原理

主要是通过udf对mysql功能进行功能拓展,让mysql拥有执行shell命令的功能,而root用户执行sql的权限是system权限,所以只要sql语句可以执行shell命令时,提权就成功了
例子:select sys_eval(‘dir’);

udf常用函数

sys_eval () #执行任意系统命令,并将输出返回 本次提权用到的函数
sys_exec () #执行任意系统命令,并将退出码返回
sys_get () #获取一个环境变量
sys_get () #创建或修改一个环境变量

1. 获取mysql版本号
select version();

在这里插入图片描述

2.udf.dll放置到被攻击服务器中

情况1:mysql版本小于5.1
需要把udf.dll放置系统目录C:\Windows 或C:\Windows\system32
情况2:mysql版本大于5.1
udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下,该目录默认是不存在的,
方法一:使用webshell找到mysql的安装目录,并在安装目录下创建\Lib\Plugin\文件夹
方法二使用NTFS流创建
数据库安装目录查找方式select @@basedir;

udf.dll获取方式:

sqlmap中集成了lib_mysqludf_sys库文件,使用对应版本
在这里插入图片描述
解码:

python3 cloak.py -d -i 你的地址\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_
创建自定义函数,执行命令
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
# sys_eval为引入的函数,lib_mysqludf.dll是导入的dll文件名称

然后就可以使用system权限执行命令了

select sys_eval('sysinfo')

利用MOF提权

此方式成功率较低
可参考文章https://www.cnblogs.com/xishaonian/p/6384535.html

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

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

相关文章

华为P60 Pro灵犀双Wi-Fi流畅通信,让你体验超凡网速

家里装有宽带的朋友,用手机进行无线网络连接时,经常会发现有2.4G和5G两个Wi-Fi信号网络。Wi-Fi信号是通过无线电波传输的,2.4G和5G是两个不同的频段,Wi-Fi信号就在这样的频段内进行传输。 2.4G信号频率低,在空气或障碍…

【机器学习】集成学习(理论)

集成学习(理论) 目录 一、何为集成学习二、集成学习最简单的模型:投票策略三、弱学习器的组合算法:自助聚合(Bagging模型)1、数据划分方法:自助法(Bootstrap Method)2、B…

决策树的介绍

一、介绍 决策树 (decision tree) 是一类常见的机器学习方法。它是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。 例如,我们要对"这是好瓜吗?&qu…

3.docker—应用部署MySQL

文章目录 1、mysql部署2、使用Navicat客户端来连接 docker应用部署 docker出现后,这些软件的安装会变得比较简单 1、mysql部署 四步走: 1️⃣搜索mysql镜像 2️⃣拉取mysql镜像 3️⃣创建容器 4️⃣操作 遇到问题: 容器内的网络服务和…

MySQL定时刷新数据

一、步骤 1.查看定时策略是否开启,查看命令: show variables like %event_sche%; 2.显示的 event_scheduler 为 OFF 时用以下命令开启: set global event_scheduler1; 3.创建存储过程 use toursim_platform; -- 选择数据库toursim_platform delimiter // create pro…

【刷题之路Ⅱ】LeetCode 86. 分隔链表

【刷题之路Ⅱ】LeetCode 86. 分隔链表 一、题目描述二、解题1、方法1——先分离再连接1.1、思路分析1.2、代码实现 2、方法2——将较大的节点后移2.1、思路分析2.2、代码实现 一、题目描述 原题连接: 86. 分隔链表 题目描述: 给你一个链表的头节点 head…

科大讯飞交卷,实测星火大模型

作者 | 辰纹 来源 | 洞见新研社 星星之火,可以燎原。 5月6日,讯飞星火认知大模型揭开神秘面纱。 发布会上,科大讯飞董事长刘庆峰、研究院院长刘聪现场实测了星火大模型七大核心能力,并发布基于该大模型的教育、办公、汽车和数字…

docker-mysql的几个问题

来水一篇文章 文章目录 问题一:问题2: 问题一: 在Navicat上执行大脚本mysql的sql文件时,出现插入数据报错的问题,查了一下innodb_log_file_size参数show variables like innodb_log_file_size;只有50331648即48M&…

WB_BF项目问题说明以及探究

我就现在WB_BF项目群里面提到的“根据测试脚本运行日志来看,bf运行了约31小时后又开始出现了api调用返回nginx的错误信息。之后,bf客户端也无法打开。”问题做一下说明,今天早上我在机器上复现了这一问题。针对于api调用会返回nginx的错误信息…

CTF权威指南 笔记 -第四章Linux安全机制-4.1-Linux基础

常用命令 这里给出linux常用命令 cd ls pwd 显示当前工作目录 uname 打印系统信息 whoami 打印用户名 man 查询帮助信息 find echo cat less head grep diff mv cp rm ps top kill touch 创建文件 mkdir 创建文件夹 chmod 变更权限 chown 变更所属者 nano 终端文本编辑器 e…

MySQL获取当前日期、时间、时间戳函数

目录 1.MySQL 获取当前日期时间 函数 1.1 获取当前日期(date)函数:curdate() 1.2 获取当前时间(time)函数:curtime() 1.3 获取当前日期时间(date time)函数:now() …

BClinux8.6 制作openssh9.3p1 rpm升级包和升级实战

一、背景说明 BClinux8.6 默认安装的openssh 版本为8.0,经绿盟扫描,存在高危漏洞,需要升级到最新。 官网只提供编译安装包,而BClinux8.6 为rpm方式安装。 为了方便升级,先通过编译安装包,制作rpm包&…

什么是无感电阻?无感电阻和普通电阻的区别

无感电阻,也称为电感电阻、电感器、电感元件等,是一种电气元件,常用于电子电路中,用于限制电流、防止电磁干扰等。无感电阻是指一种电阻器件,它能够在高频电路中工作而不会产生电感,从而避免了电感对电路性…

【Python】更改matplotlib绘图样式,要创建一个后缀名为mplstyle的样式清单,如何实现?

要更改 matplotlib 绘图样式,可以按照以下步骤创建一个后缀名为 mplstyle 的样式清单: 打开终端或 Anaconda Prompt(Windows 用户);确保您的 Matplotlib 版本是 2.0.0 以上版本,通过运行: imp…

被裁现状,给找工作的同学一些建议

2022 到 2023 国内知名互联网公司腾讯、阿里、百度、快手、滴滴、京东、阿里、爱奇艺、知乎、字节跳动、小米等公司均有裁员,其中有不少公司,在过去年的一整年,进行了多轮裁员,以下是网传的一张 “2022 年裁员企业名单”。 这些裁…

【单目标优化算法】孔雀优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

介绍一个empty(空状态描述)全端通用的空状态描述组件

介绍 这是一个全端通用的空状态描述组件,集成了25种常用场景,支持自定义图标及内容,快点下载试试吧。 插件含全部源码,可以给您无限实现可能,随心所欲自定义你的功能;符合uni_modules和easycom规范&#…

什么是web3 | 区块链web3.0人才

文章目录 一、Web31. 什么是web3?2. web3的dapp架构 二、区块链web3.0人才1. 区块链开发技术栈2. 欧易对人才的要求3. 如何成为一名合格的智能合约高级工程师4. web3各个赛道5. 链上数据分析师6. 一些案例 三、参考 一、Web3 1. 什么是web3? 20世纪90年…

百度搜索排名的提升,就靠这10个优化技巧!

随着互联网的快速发展,网站排名已经成为了企业竞争的一个重要指标。其中,百度搜索排名的提升更是众多企业都非常关注的问题。因此,在这篇文章中,我将为大家介绍10个优化技巧,以帮助企业提升百度搜索排名。 1.关键词优化…

MG100-Hi3798MV100-当贝纯净桌面卡刷固件包

MG100-Hi3798MV100-当贝纯净桌面卡刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件&#xf…