Files
Sec-Interview/Chapter4/4-9.md
T
2025-09-25 03:23:03 +08:00

47 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### MySQL 提权方式有哪些
**1. UDF 提权(User-Defined Function**
UDF 提权是 MySQL 提权最常见且最有效的方式之一。它利用了 MySQL 允许用户通过 C/C++ 编写自定义函数并加载到数据库中执行的特性
- **前提条件:**
- **高权限**:当前 MySQL 用户账户必须具备 `CREATE FUNCTION``FILE` 权限
- **可写目录**:需要将恶意 UDF 库文件(`.dll``.so`)写入到 MySQL 插件目录中
- **攻击步骤:**
1. **上传 UDF 库文件**:攻击者利用 SQL 注入或文件写入漏洞,将一个包含恶意系统命令执行功能的 UDF 库文件(例如 `lib_mysqludf_sys.so``mysql.dll`)上传到 MySQL 服务器的可写目录,通常是插件目录 (`/usr/lib/mysql/plugin/`) 或其他可写目录
2. **创建自定义函数**:使用 SQL 语句,调用 `CREATE FUNCTION` 命令,将上传的 UDF 库文件中的恶意函数(如 `sys_exec``sys_eval`)注册为 MySQL 函数
```sql
CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.so';
```
3. **执行系统命令**:通过调用新创建的函数,执行任意系统命令,从而实现提权
```sql
SELECT sys_eval('whoami');
```
- **防御方法:**
- **最小权限原则**:不要授予 MySQL 用户 `FILE` 或 `SUPER` 等高权限
- **加固配置**:修改 `my.cnf` 文件,设置 `secure_file_priv` 为空或一个指定的安全目录,以限制文件导入导出功能
**2. MOF 提权(Managed Object Format**
MOF 提权是针对 Windows 服务器的一种特定提权方式,利用了 Windows Server 2003/2008 上的一些服务配置不当
- **前提条件:**
- **Windows 服务器**:目标服务器必须是 Windows 系统
- **可写目录**:攻击者必须能够将恶意 MOF 文件写入到 `%systemroot%\system32\wbem\mof` 目录下
- **MySQL 权限**:需要有 `FILE` 权限,以写入文件
- **攻击步骤:**
1. **编写恶意 MOF 文件**MOF 是 Windows 管理规范(WMI)使用的文件格式。攻击者可以编写一个恶意的 MOF 文件,让其在被系统加载时,自动执行一个指定的命令,比如创建一个新的管理员用户
2. **上传 MOF 文件**:利用 `SELECT ... INTO OUTFILE` 语句,将恶意 MOF 文件写入到 `%systemroot%\system32\wbem\mof` 目录下
3. **服务触发**Windows 的 `CIMOM` 服务会周期性地扫描该目录下的 MOF 文件,并自动执行其内容。当恶意 MOF 文件被执行后,攻击者指定的命令就会被执行,从而实现提权
- **防御方法:**
- **最小权限原则**:不要授予 MySQL 用户 `FILE` 权限
- **更新系统**:该漏洞在较新的 Windows 系统版本中已被修复