什么是udf?
udf-mysql扩展函数
MySQL的内置函数虽然丰富,但毕竟不能完全满足所有人的需要,有时候我们需要对表中的数据进行一些处理而内置函数不能满足需要的时候,就需要对MySQL进行一些扩展,MySQL给使用者提供了添加新函数的机制,这种使用者自行添加的MySQL函数就称为UDF(User Define Function)。
UDF提权原理
使用udf分三步:
1.把含义自定义函数(如执行系统命令函数“sys_eval”)的dll文件放入特定文件夹下。
2.声明引入这个dll文件中的自定义函数。
3.使用自定义的函数。
提权前置条件
1.目标系统是Windows(Win2000,XP,Win2003)
2.你已经拥有MYSQL的某个用户账号(网站配置文件、查看数据库安装路径下的mysql文件、暴力破解),此账号必须有对mysql的insert和delete权限以创建和抛弃函数
3.如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下才可以创建自定义函数,该目录默认是不存在的,需要使用webshell找到mysql的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll文件导出到该目录。
4.如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:\windows\system32目录,在windows server 2000下放置在c:\winnt\system32目录。
提权过程
1.导入udf.dll文件 SQLmap可以实现导出dll文件,目录在sqlmap/udf/mysql/windows(这里的32位/64位,指的是mysql的位数),如果位数错误则会报错。2.SQLmap里的duf.dll是经过编码的 使用sqlmap/extra/cloak目录下的cloak.py进行解码
3.将dll文件复制到mysql的/lib/plugin目录下:创建sys_exec函数
create function sys_exec returns string soname "lib_mysqludf_sys.dll";
下次总结udf提权不可用的其他提权情况。