Featured image of post O retorno do Bislacha

O retorno do Bislacha

Write-up do desafio envolvendo análise de imagem, decodificação Base64, exploração de controle de acesso e escalonamento de privilégios até o painel administrativo.

Objetivo

O objetivo do desafio foi realizar reconhecimento, analisar arquivos (esteganografia/strings), decodificar credenciais e explorar um controle de acesso fraco para escalonamento de privilégios.

Solução

Fazendo o reconhecimento

Reconhecimento

O site, à primeira vista, contém apenas duas abas: Home e Login. A aba Home redireciona para a aba Login. Inspecionei o HTML e o console do navegador e nada de anormal apareceu. Para testar o funcionamento do sistema de login, iniciei com um teste de SQL Injection simples: ' OR 1=1 --. O sistema retornou Login e/ou senha incorretos, sugerindo que não havia uma vulnerabilidade SQL trivial na rota de login.

Request

Ao examinar melhor a página, reparei em um pequeno texto no logo:

Esse texto apontava para um diretório/arquivo do site que carregava uma imagem.

Analisando a imagem

Baixei a imagem e procurei por strings legíveis (com strings). A imagem aparentava ser um fundo preto, mas nas strings encontrei dados que lembravam credenciais codificadas.

Hexedit Login

Voltando à pagina de login, colocando as credencias encontradas e clicando em login, a mensagem Login e/ou senha incorretos é retornada. Analisando um pouco melhor, percebe-se que o login e a senha foram codificados em Base64 um forte indicativo é o final = característico Decodificando ambos com uso do CyberChef chegamos em:

  • Login: bislacha
  • Senha: bislachamuitofoda12345

Com as credenciais corretas, agora o login foi um sucesso.

Acesso

Logado

Após entrar, uma nova aba chamada Membros foi disponibilizada. Nela vi uma listagem de membros atuais e ex-membros; foquei no usuário autenticado (Bislacha).

Bislacha

No lugar de seu apelido podemos ver que se trata de uma base64 novamente, e decodificando temos: panel.php

Panel.php

Panel

Ao acessar /panel.php fui informado de que a conta estava logada, mas não era admin. Isso indica que existe um painel administrativo protegido por controle de acesso, ou seja, havia potencial para escalonamento de privilégio.

Escalonamento de privilégio

Cookies

Inspecionando os Cookies armazenados podemos achar os campos login e user com seus respectivos valores, e percebemos se tratar novamente de uma base64, decodificando ambos, ficamos:

  • login: bislacha
  • user: member

Ou seja, o sistema armazena os tipos de usuario em base64, como precisamos escalar para admin, eu troco o atual user por YWRtaW4=, sua versão codificada e recarrego a pagina.

Resolução

Após recarregar a página, a interface mudou para a versão de administrador e a flag do desafio foi exibida

Criado com Hugo
Tema Stack desenvolvido por Jimmy