点击蓝字关注我们

本文作者:伟大宝宝

UDF提权已经不是什么新鲜技术了,不过前段时间在搭靶场的时候又重温了一遍这个东西,期间遇到了个别之前没有注意过的“难题”今天跟大家分享一下。
首先关注一下这个版本问题,大多数人会把mysql5.1带入写到文章里面,但实际上这个年代用5.1版本mysql的人已经是万里挑一的概率了,所以这次也是针对5.1以上版本来讲的。
因为我们的mysql在导入我们的udf文件的时候是从mysql安装目录下的lib/plugin目录进行导入的,这点可以从mysql的变量中看到。
默认这个目录是不存在的,所以我们需要有权限去新建目录。
而对于udf.dll文件其实在sqlmap中已经是自带了。
然后这里就来坑了,这个udf文件是分为32位和64位的。
这里的32和64并不是指你操作系统的位数,而是mysql数据库的位数,如果这个搞错了,我们在导入文件的时候是会报错的,网上给出的很多的16进制的udf数据,我试了几个都会报错。
查看数据库的位数也简单,使用mysql -V,可以看到我这里是32位的数据库,所以在选择dll文件的时候需要选择32位的。
选择了udf文件,并且又创建了目录,在写入的时候其实也就很简单了。因为文件没办法直接上传,也不能直接复制内容,所以我这里是用hex(load_file(‘udf path’))将文件转为16进制的数据。
写入的时候只需要select 0x16进制数据 intodump file ’dll上传目录的绝对路径’
在sqlmap的udf.dll中定义的执行命令的函数是sys_eval
使用如下命令来导入dll文件中的函数
create function sys_eval returns string soname 'udf文件名'
最后使用select sys_eval('命令')然后即可执行命令。
招新通知
summer
有朋自远方来不亦乐乎,欢迎大家积极自荐,一起构建更加完善的学习环境~~
有意者可联系微信:qjx1689626876 或者在公众号主页“商务合作”获取联系方式。
平台运维师傅
技能要求:熟悉linux系统命令,能对系统运行故障进行排查;熟悉docker虚拟化技术,能构建指定docker环境并可以针对dockerfile进行简单修改,实现需求功能。CTF re/pwn/crypto 方向师傅
技能要求:热爱CTF,长期混迹各类赛事,有个人擅长领域,喜欢分享。
渗透测试师傅
技能要求:至少掌握一门编程语言(易语言不算),2年以上渗透测试经验,了解windows/linux提权姿势;掌握常见漏洞的挖掘方法,关注安全动态,能及时跟进了解最新披露漏洞情况,热爱渗透测试领域,学习能力强,喜欢挖洞(最关键)。
你可能喜欢的文章
记一次靶机渗透 (vulhub DC2) 渗透
内网学习-域渗透完结
CTF成长之路(五)
宝塔phpmyadmin未授权访问漏洞复现


扫描二维码 |关注我们
技术支持 :白帽子社区团队 | 公众号:白帽子社区