数据库提权--UDF提权(MYSQL)

前言

  数据库提权的目的是通过已有的数据库权限获得操作系统的权限。

  UDF(user-defined function)是MySQL的一个拓展接口,也可称之为用户自定义函数。用户通过自定义函数来实现MySQL中无法方便实现的功能,其添加的新函数都可以在SQL语句中调用,通过添加命令执行函数可以执行系统命令, 从而进行提权。

UDF提权的过程是:

首先在网站中引入一个udf.dll文件-->在数据库中构造自定义函数-->通过数据库语句执行系统命令

UDF提权的利用条件是:

(1)Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下

(2)Mysql版本小于5.1版本udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\system32

(3)已经掌握的这个mysql数据库的账号,需要有mysql的操作权限(插入、删除),即我们需要获得mysql的root权限账号

(4)有可以将udf.dll写入到相应目录的权限

(5)secure-file-priv参数不为null(这个参数是针对文件导入导出)

 实操

1、生成dll文件

通过sqlmap自带的dll_文件,生成我们需要的dll文件。(选择dll_文件时要注意与数据库版本对应)

使用的命令如下:

python C:\Users\龙\Desktop\udf\cloak.py -d -i C:\Users\龙\Desktop\udf\lib_mysqludf_sys.dll_

2、导入dll文件

将dll文件导入到网站服务器的过程是,首先使用load_file语句读取本地的dll文件,然后使用into dumpfileinto outfile数据库语句写入到目标绝对路径。

注意:因为在数据库5.1版本之后,lib\plugin目录默认是不存在的,所以需要自己建立,不然无法上传dll文件。

 导入文件成功的结果如下图所示:

如果secure_file_priv的参数为null,即不允许导入导出文件,报错结果如下图:

 3、构造用户自定义函数

从udf.dll文件中选择一个存在的函数进行定义。

CREATE FUNCTION sys_eval RETURNS  STRING SONAME 'udf.dll';

4、执行系统命令

5、删除自定义函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春天里面的龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值