Skills Assessment - SQL Injection Fundamentals
Last updated
Last updated
Ao visitar o endereço IP fornecido na pergunta você encontra a página de login do site da empresa.
Usei este payload para fazer o bypass de autenticação
Após o login bem-sucedido, nos deparamos com a página abaixo:
Precisamos saber se temos privilégios para ler/gravar dados. Vamos começar descobrindo o usuário logado no momento.
Em seguida, verificamos quais privilégios nosso usuário possui:
A resposta é Y, o que confirma que o usuário possui privilégios de superusuário. Estamos especialmente interessados em saber se o usuário possui os privilégios 'FILE' que permitem a leitura e potencial gravação de arquivos no banco de dados.
A variável secure_file_priv pode ser lida no banco de dados INFORMATION_SCHEMA, tabela global_variables, nas colunas nome_da_variável e valor_da_variável. Vamos usar as cláusulas UNION e WHERE para filtrar dados específicos da nossa variável. Comente
O valor da variável está vazio, portanto temos acesso a todo o sistema de arquivos. Vamos tentar gravar um arquivo de texto na raiz da web para verificar as permissões de gravação usando a carga útil:
Desta vez não há erro e podemos confirmar que o arquivo foi gravado visitando http://SERVER_IP:PORT/dashboard/proof.tx
Agora podemos escrever um web shell para nos permitir executar comandos diretamente no servidor back end:
Vamos agora usar a carga útil para pesquisar no sistema de arquivos. Podemos começar imprimindo o diretório de trabalho:
Os resultados de https://IP :PORT/dashboard/shell1.php são /var/www/html/dashboard Comente
Vamos navegar até o diretório raiz com a carga:
Vamos carregar o arquivo para ler seu conteúdo usando o payload: