mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-29 22:43:11 +00:00
53 lines
5.3 KiB
Markdown
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** Verifique 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-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **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 as permissões necessárias de arquivo e `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 possíveis devido ao entendimento 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 dentro de 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ção 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** Verifique 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-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **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>
|