MySQL数据库提权之UDF
沉沙 2018-05-14 来源 : 阅读 1826 评论 0

摘要:UDF(user defined function)用户自定义函数,是MySQL数据库的一个拓展接口。用户可以通过自定义函数实现在MySQL数据库中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样。

UDF

UDF(user defined function)用户自定义函数,是mysql的一个拓展接口。用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样。


windows下udf提权的条件

· 如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下/

· 如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:\windows\system32目录,在windows server 2000下放置在c:\winnt\system32目录。

· 掌握mysql数据库的账户,从拥有对mysql的insert和delete权限,以创建和抛弃函数。

· 拥有可以将udf.dll写入相应目录的权限。


提权方法

如果是mysql5.1及以上版本,必须要把udf.dll文件放到mysql安装目录的lib\plugin文件夹下才能创建自定义函数。该目录默认是不存在的,需要使用webshell找到mysql的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll文件导出到该目录。

接下来就是干货的地方了,反正我遇到下面一些问题的时候谷歌是找不到答案的(幸亏有大佬相助=。= )

udf.dll这个东西对于小白来说是不容易找到的(譬如我),后来才知道原来大名鼎鼎的sqlmap里是有udf.dll文件的,就在sqlmap/udf/mysql/windows目录下,里面有32位和64位,注意:这里的位数是mysql的位数,并不是对方系统的位数。
如果你遇到了如图的错误:

MySQL数据库提权之UDF 

那么一定要检查一下是不是位数搞错了,反正我是因为这个错误。

还有一个需要注意的是,sqlmap里的udf.dll是通过异或编码的,使用之前一定要记得解码,解码的工具也在sqlmap中。

 MySQL数据库提权之UDF


在sqlmap/extra/cloak目录下的cloak.py就是。
解密之后会在当前目录下生成dll文件。

将dll文件复制到mysql的/lib/plugin目录下,执行

create function cmdshell returns string soname "lib_mysqludf_sys.dll";

结果报错了

MySQL数据库提权之UDF 

 

那么这里需要注意的是,需要创建udf中存在的函数才可以,可以用十六进制编辑器打开udf.dll,看一下有哪些函数可以创建

MySQL数据库提权之UDF 

 

大概就是这些了,我们可以使用sys_exec函数 

MySQL数据库提权之UDF 

 

成功,然后试验一下: 

 MySQL数据库提权之UDF

成功弹出计算器!

 

本文由职坐标整理发布,学习更多的MySQL数据库知识,请关注职坐标MySQL频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程