mysql提权提示can't open shared library 'udf.dll'解决办法

对于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'"错误的一种办法。

posted on 2011-05-02 00:17  小宝哥哥  阅读(6530)  评论(0编辑  收藏  举报

导航

Tasup