mysql UDF提权踩坑经验分享

admin 2024年5月30日22:34:08评论44 views字数 779阅读2分35秒阅读模式
前言

UDF提权已经不是什么新鲜技术了,不过前段时间在搭靶场的时候又重温了一遍这个东西,期间遇到了个别之前没有注意过的“难题”今天跟大家分享一下。

无问社区

01

事件开始

首先关注一下这个版本问题,大多数人会把mysql5.1带入写到文章里面,但实际上这个年代用5.1版本mysql的人已经是万里挑一的概率了,所以这次也是针对5.1以上版本来讲的。

mysql UDF提权踩坑经验分享

因为我们的mysql在导入我们的udf文件的时候是从mysql安装目录下的lib/plugin目录进行导入的,这点可以从mysql的变量中看到。

mysql UDF提权踩坑经验分享

默认这个目录是不存在的,所以我们需要有权限去新建目录。

对于udf.dll文件其实在sqlmap中已经是自带了。

mysql UDF提权踩坑经验分享

无问社区

02

发现问题

然后这里就来坑了,这个udf文件是分为32位和64位的。

mysql UDF提权踩坑经验分享

这里的32和64并不是指你操作系统的位数,而是mysql数据库的位数,如果这个搞错了,我们在导入文件的时候是会报错的,网上给出的很多的16进制的udf数据,我试了几个都会报错。

查看数据库的位数也简单,使用mysql -V,可以看到我这里是32位的数据库,所以在选择dll文件的时候需要选择32位的。

mysql UDF提权踩坑经验分享

选择了udf文件,并且又创建了目录,在写入的时候其实也就很简单了。因为文件没办法直接上传,也不能直接复制内容,所以我这里是用hex(load_file(‘udf path’))将文件转为16进制的数据。

mysql UDF提权踩坑经验分享

写入的时候只需要select 0x16进制数据 intodump file ’dll上传目录的绝对路径’在sqlmap的udf.dll中定义的执行命令的函数是sys_eval使用如下命令来导入dll文件中的函数

create function sys_eval returns string soname 'udf文件名'

然后执行即可。

mysql UDF提权踩坑经验分享

END

原文始发于微信公众号(白帽子社区团队):mysql UDF提权踩坑经验分享

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月30日22:34:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   mysql UDF提权踩坑经验分享https://cn-sec.com/archives/2786791.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息