# MySQL File priv to SSRF/RCE

<details>

<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE（HackTricks AWS红队专家）</strong></a><strong>！</strong></summary>

支持HackTricks的其他方式：

* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**，请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family)，我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。

</details>

**这是来自**[**https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/**](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**的MySQL/MariaDB/Percona技术摘要**。

### 通过SQL函数实现服务器端请求伪造（SSRF）

在探索SQL带外数据泄露时，`LOAD_FILE()`函数通常用于发起网络请求。然而，该函数受操作系统和数据库启动配置的限制。

如果未设置`secure_file_priv`全局变量，默认为`/var/lib/mysql-files/`，限制文件访问仅限于该目录，除非设置为空字符串(`""`)。这种调整需要修改数据库的配置文件或启动参数。

假设`secure_file_priv`已禁用(`""`)，并假设已授予必要的文件和`file_priv`权限，可以读取指定目录之外的文件。然而，这些函数进行网络调用的能力高度依赖于操作系统。在Windows系统上，由于操作系统理解UNC命名约定，因此可以对UNC路径进行网络调用，潜在地导致NTLMv2哈希的泄露。

这种SSRF方法仅限于TCP端口445，并且不允许修改端口号，尽管它可以用于访问具有完全读取权限的共享目录，并且正如先前研究所示，可以窃取哈希以进行进一步利用。

### 通过用户定义函数（UDF）实现远程代码执行（RCE）

MySQL数据库提供了从外部库文件使用用户定义函数（UDF）的功能。如果这些库文件在特定目录或系统的`$PATH`中可访问，则可以从MySQL中调用它们。

通过这种技术，可以执行通过UDF进行的网络/HTTP请求，前提是满足多个条件，包括对`@@plugin_dir`具有写访问权限，`file_priv`设置为`Y`，以及禁用`secure_file_priv`。

例如，可以加载`lib_mysqludf_sys`库或其他允许HTTP请求的UDF库以执行SSRF。这些库必须传输到服务器，可以通过对库内容进行十六进制或base64编码，然后将其写入适当的目录来实现。

如果`@@plugin_dir`不可写，特别是对于MySQL版本高于`v5.0.67`的情况，该过程会有所不同。在这种情况下，必须使用可写的替代路径。

这些过程的自动化可以通过工具（如SQLMap，支持UDF注入）来实现，并且对于盲SQL注入，可以利用输出重定向或DNS请求欺骗技术。

<details>

<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE（HackTricks AWS红队专家）</strong></a><strong>！</strong></summary>

支持HackTricks的其他方式：

* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**，请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family)，我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。

</details>
