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