当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

mysql使用udf提权的高级技巧-应对can'topensharedlibrary'ud

对于cantopensharedlibraryudf.dll相信很多使用mysql提权的朋友应该都不会感到陌生吧,明明是root用户但是在使用udf.dll提权创建自定义函数时却提示这样的错误,以前遇到这种情况一般都会放弃。经过测试发现appserv搭建php环境能利用udf.dll提权5.037

对于can't open shared library 'udf.dll'相信很多使用mysql提权的朋友应该都不会感到陌生吧,明明是root用户 但是在使用udf.dll提权创建自定义函数时却提示这样的错误,以前遇到这种情况一般都会放弃。 

经过测试发现appserv搭建php环境能利用udf.dll提权 5.037

apache+php+mysql+phpmyadmin搭建的php环境不能利用 5.1

为什么两个系统一个能利用一个不能利用呢?原因很简单 因为 5.1版本开始必须把udf.dll文件放到mysql安装目录下的lib/blugin文件下才能创建自定义函数,并且该目录默认是没有的,而mysql into dumpfile在导出文件时也不能创建文件夹,原来mysql从5.1版本开始在把udf.dll导入到系统目录下已经不能创建自定义函数了,而一般我们都是把udf.dll导入到系统目录,自然也就不能创建自定义函数了,导致了不能提权。能够提权的系统中的mysql版本为5.0.37,不能提权的系统中的mysql的版本为5.1正好符合上面说法。

在不能利用的系统(5.037)中执行create function mycmd return string soname 'udf.dll' 时提示can't open shared library 'udf.dll' 的错误提示,说明导出到系统目录不能创建自定义函数,我们来把udf.dll导入到mysql安装目录下的lib/blugin目录中,我已经知道了mysql的安装目录为:"c:\program files\mysql\mysql server 5.1"在这个目录下目前还没有lin/plugin这个目录,我们通过webshell在mysql安装目录下创建lib文件夹然后再lib文件夹中创建plugin文件夹 在udf.php中dll导出路径就写"c:\program files\mysql\mysql server 5.1\lib\plugin\udf.dll"。这时候就可以执行 如select mycmd("net user");的sql命令来执行聪明的了。。。

通过在mysql安装目录下创建lib/plugin目录,然后再把udf.dll文件导出到该目录下,是在mysql 5.1以及更高版本中解决"can't open shared library 'udf.dll'"错误的一种办法。。。。

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有