MySql数据库提权学习总结

一、概述

MySql提权的三种方式:

1.udf提权

2.mof提权

3.启动项提权

二、MySql提权的必要前提

---获取MySql的root账号的密码

获取方法:

1.查看数据库的配置文件

在Linux系统中,MySQL的配置文件位于/etc/mysql/my.cnf

user=root
password=root

存在/etc目录下不存在mysql配置文件的问题,参考:etc无mysql配置文件 - 老白网络

在windows系统中,配置文件my.ini在 MySql 安装的根目录下,也有可能在隐藏文件夹“ProgramData”下。

2.下载mysql安装路径下的数据文件并破解

安装路径下的data目录存放的是数据库的数据信息

root账号密码存放在user表中

完整路径=安装路径+data+mysql+user.myd

3.暴力破解

三、UDF提权

1.原理:

  • UDF用户自定义函数,可以通过添加新的函数对mysql服务进行功能扩充。
  • 添加执行命令、获取环境变量、创建修改环境变量等自定义函数。
  • 利用了服务器上MySql数据库服务的高权限来执行系统命令添加高权限用户来实现提权。

2.利用条件

  • MySql数据库版本
  • 账号具有对MySql的插入和删除权限
  • 可以将udf.dll写入到相应目录的权限
  • 导出目录可写
  • mysql配置中,secure_file_priv=""

windows环境:

  • Windows 2000、XP、2003(windows环境)

linux环境:

  • 系统中的selinux处于关闭状态
  • 具有root权限,且mysql数据库以system权限启动

secure_file_priv是用来限制mysql数据库导出的位置/目录

可以去通过show variables like '%secure%';  这个指令去查看secure_file_priv 的状态

secure_file_priv的不同情况

  • 如果为空,不做目录限制,即任何目录均可以。
  • 如果指定了目录,MySQL 会限制只能从该目录导入、或导出到该目录。目录必须已存在,MySQL 不会自动创建该目录。
  • 如果设置为 NULL,MySQL 服务器禁止导入与导出功能。

3.实操经验总结

  • \sqlmap\data\udf\mysql\windows\64目录下生成一个dll的文件lib_mysqludf_sys.dll,这个我们就可以直接拿来利用

    攻击者可以利用lib_mysqludf_sys提供的函数执行系统命令。

    函数:

    sys_eval,执行任意命令,并将输出返回。

    sys_exec,执行任意命令,并将退出码返回。

    sys_get,获取一个环境变量。

    sys_set,创建或修改一个环境变量。

  • MySql版本高于5.1,需要自行创建导出文件,可以利用NTFS ADS溜来创建文件夹。但是通常可以利用NTFS ADS流创建文件,直接通过webshell创建文件夹也没问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值