hacktricks/pentesting-web/sql-injection/mysql-injection/mysql-ssrf.md

53 lines
5.3 KiB
Markdown

# MySQL File priv to SSRF/RCE
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
**Este é um resumo das técnicas do MySQL/MariaDB/Percona de [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/)**.
### Server-Side Request Forgery (SSRF) via Funções SQL
Na exploração da exfiltração de dados Out of Band do SQL, a função `LOAD_FILE()` é comumente utilizada para iniciar solicitações de rede. No entanto, essa função é limitada pelo sistema operacional em que opera e pelas configurações de inicialização do banco de dados.
A variável global `secure_file_priv`, se não definida, tem como padrão `/var/lib/mysql-files/`, limitando o acesso a arquivos a este diretório, a menos que seja definida como uma string vazia (`""`). Este ajuste requer modificações no arquivo de configuração do banco de dados ou nos parâmetros de inicialização.
Dado que `secure_file_priv` está desativado (`""`), e assumindo que o arquivo necessário e as permissões `file_priv` são concedidas, arquivos fora do diretório designado podem ser lidos. No entanto, a capacidade dessas funções de fazer chamadas de rede depende muito do sistema operacional. Em sistemas Windows, chamadas de rede para caminhos UNC são viáveis devido à compreensão do sistema operacional das convenções de nomenclatura UNC, potencialmente levando à exfiltração de hashes NTLMv2.
Este método de SSRF é limitado à porta TCP 445 e não permite a modificação do número da porta, embora possa ser usado para acessar compartilhamentos com privilégios de leitura total e, como demonstrado em pesquisas anteriores, para roubar hashes para exploração adicional.
### Execução de Código Remoto (RCE) via Funções Definidas pelo Usuário (UDF)
Bancos de dados MySQL oferecem o uso de Funções Definidas pelo Usuário (UDF) a partir de arquivos de biblioteca externos. Se essas bibliotecas forem acessíveis em diretórios específicos ou no `$PATH` do sistema, elas podem ser invocadas de dentro do MySQL.
Essa técnica permite a execução de solicitações de rede/HTTP por meio de uma UDF, desde que várias condições sejam atendidas, incluindo acesso de gravação ao `@@plugin_dir`, `file_priv` definido como `Y` e `secure_file_priv` desativado.
Por exemplo, a biblioteca `lib_mysqludf_sys` ou outras bibliotecas UDF que permitem solicitações HTTP podem ser carregadas para realizar SSRF. As bibliotecas devem ser transferidas para o servidor, o que pode ser alcançado por meio da codificação em hexadecimal ou base64 do conteúdo da biblioteca e, em seguida, gravando-a no diretório apropriado.
O processo varia se o `@@plugin_dir` não for gravável, especialmente para versões do MySQL acima de `v5.0.67`. Nesses casos, devem ser usados caminhos alternativos que sejam graváveis.
A automação desses processos pode ser facilitada por ferramentas como o SQLMap, que suporta injeção de UDF, e para injeções de SQL cegas, a redireção de saída ou técnicas de contrabando de solicitações DNS podem ser utilizadas.
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>