Objetivo
Basicamente o objetivo desse desafio é invadir um site que tem como conteúdo o incentivo a crimes de ódio; na descrição do desafio podemos ver a seguinte frase:
“Há uma seção de administração nesse site em algum lugar, talvez escondida entre a estrutura de diretórios. Seria uma grande luta contra a tirania moral e uma vitória pela liberdade se você pudesse de alguma forma invadir o site deles.”
Então vamos lá
Coleta de informações
Acessando o site nos deparamos com uma página bem simples
A primeira ação realizada foi analisar o código fonte da aplicação afim de obter mais informações
Um ponto me chamou atenção: a aplicação utiliza um arquivo php para ler o conteúdo de outros arquivos no formato txt, o que torna esse ponto um bom candidato pra um possível LFI
Continuei analisando o código e não existem muitas funcionalidades, então decidi abrir uma das fotos para analisar o caminho dos arquivos
No passo seguinte, tentei ler o conteúdo do diretório images e descobri que esse diretório estava com a listagem habilitada
Nessa listagem, foi possível encontrar também uma pasta de nome admin, porém ao tentar acessar a pasta a aplicação pede por uma autenticação
É possível notar que essa autenticação é feita utilizando o Basic Auth
Exploração
Para o Basic Auth funcionar corretamente é preciso habilitar esse recurso em um arquivo chamado “.htaccess”, também é necessário criar um arquivo contendo as credenciais válidas para acesso, e o nome desse arquivo também deve ser informado em “.htaccess” para que a aplicação possa fazer a validação
Sabendo que provavelmente esse arquivo está localizado dentro do diretório que solicitou a autenticação, utilizei aquele possível ponto vulnerável a LFI para tentar realizar a leitura do arquivo
A aplicação retornou algumas imagens quebradas, porém analisando o código fonte da aplicação é possível identificar o conteúdo do “.htaccess”
Dessa forma, foi possível identificar que o arquivo contendo a senha dos usuários autorizados a realizar a autenticação está salva no arquivo “.htpasswd”, então, realizei uma nova consulta pra tentar ler o conteúdo desse arquivo
Novamente a aplicação retornou uma imagem quebrada, porém analisando o código fonte é possível identificar o conteúdo dessa “imagem”
Dessa forma, foi possível descobrir o nome do usuário e o hash da senha utilizado para se autenticar na aplicação. O próximo passo foi tentar realizar a quebra dessa hash
Para isso utilizei o john, e juntamente com a wordlist rockyou, foi possível descobrir a senha do administrator
Agora que já sei o usuário e a senha, bastou voltar a aplicação para realizar o login