MySQL之UDF提权
简介:
UDF俗称用户自定义函数,是mysql的一个拓展接口。用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样。
限制条件:
1、如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的libplugin文件夹下,默认没有plugin文件,需要新建这个文件
2、如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:windowssystem32目录,在windows server 2000下放置在c:winntsystem32目录。(mysql5.1以上版本无法在server 2003或者server 2000或者XP系统运行)
3、拥有mysql数据库的root权限或者更高的权限
提权操作:
1、站点webshell,菜刀连接,并且获得相应的权限,可以直接通过菜刀进行plugin文件夹的创建
2、搞一份用来udf提权的dll文件,我推荐在sqlmap中直接搞
3、找到该文件并不能直接使用,需要进行解码,解码可以通过sqlmap的cloak.py文件进行,执行如下命令,会在原文件所在目录中生成一个新的被编码后的dll文件
4、将编码后的dll文件复制下来,上传到plugin文件夹下
5、使用mysql命令行进行UDF函数的导入,主要对sys_eval函数导入,其他的参数记住即可,执行如下
6、提示提权成功,验证是否成功,输入命令select sys_eval(‘ipconfig’);
注意:
1、如果是把本地的udf16进制形式通过我们已经获得的webshell传到目标主机上,要记得删除痕迹
2、网上有说可以使用ntfs数据流创建plugin目录,我觉得有点扯淡,搞不定,不知是实力问题还是本就有待考究