Decodifique a Credencial Armazenada: Base64 Não É Criptografia

Escalonamento de Privilégios & Pós-Exploração Nível 2/4 ~3 min 25 de agosto de 2026

O desafio

Uma aplicação afirma que 'criptografa' a senha do banco de dados antes de salvá-la, mas o valor armazenado é apenas base64. Recupere a senha a partir do bloco codificado e envie a senha do banco de dados.

O que você vai aprender

  • Reconhecer base64 em uma credencial armazenada pelo conjunto de caracteres e pelo preenchimento ==
  • Decodificar um bloco base64 em um clique para recuperar a senha em texto claro
  • Entender por que base64 não é criptografia e não oferece proteção em repouso
  • Perceber que qualquer pessoa que consiga ler um valor armazenado pode decodificar base64 sem precisar de chave
  • Saber o que é necessário para proteger de verdade uma credencial armazenada

Habilidades testadas

Reconhecimento de base64Decodificação de base64Avaliação de fragilidades no armazenamento de credenciais

Pré-requisitos

  • A ideia de que aplicações armazenam senhas de banco de dados em algum lugar
  • Familiaridade em reconhecer base64 pelo preenchimento == no final

Como funciona

Aplicações precisam de uma senha para se conectar ao banco de dados, e essa senha precisa existir em algum lugar que o app consiga ler na inicialização - um arquivo de configuração, uma variável de ambiente ou uma tabela de configurações. Um padrão comum, porém equivocado, é aplicar base64 à senha antes de armazená-la e descrever isso como "criptografia" para que pareça mais seguro em uma revisão. Não é criptografia. base64 é uma codificação reversível e pública, sem chave, então o valor ofuscado está a apenas uma decodificação de distância da senha real.

Você pode reconhecer base64 em um bloco armazenado da mesma forma que faria em qualquer outro lugar. Ele usa letras maiúsculas e minúsculas e dígitos, pode conter alguns símbolos, e frequentemente termina com um ou dois sinais = de preenchimento. O valor armazenado aqui termina com ==, o que é um forte indício de que a forma externa é base64. Decodificá-lo revela a senha original em texto claro, exatamente como o app a utiliza.

O impacto de segurança é direto. Qualquer um que consiga ler o valor armazenado - seja por meio de uma configuração vazada, um backup, uma linha de log ou um host comprometido - consegue recuperar a senha ativa do banco de dados em um único clique, porque nenhum segredo é necessário para reverter base64. É por isso que armazenar em base64 é um presente para escalonamento de privilégios: transforma acesso de leitura a um arquivo em credenciais completas do banco de dados. Os botões ROT13, hex, URL e reverse esperam formatos de entrada diferentes e são distrações aqui.

Erros comuns

  • Acreditar que "criptografado" significa seguro. Chamar base64 de criptografia não dá a ele uma chave. O valor é reversível por qualquer um que consiga lê-lo.
  • Escolher o decodificador errado. hex usa apenas 0-9a-f e ROT13 mantém o mesmo comprimento e formato. As letras maiúsculas e minúsculas misturadas, os símbolos e o preenchimento == apontam para base64.
  • Enviar o bloco codificado. A resposta é a senha decodificada, não a string em base64.
  • Assumir que armazenamento em repouso é baixo risco. Uma configuração ou backup legível transforma uma senha em base64 diretamente em acesso ao banco de dados ativo.

Como se proteger

A correção é parar de tratar base64 como proteção e lidar com as credenciais armazenadas de forma adequada. Uma senha de banco de dados que o app precisa usar em tempo de execução deve vir de um cofre de segredos gerenciado, não de um bloco base64 em um arquivo, e o valor nunca deve ser descrito como criptografado a menos que realmente seja.

  • Armazene credenciais de serviço em um gerenciador de segredos dedicado, com controle de acesso e registro de auditoria, não em configuração em texto claro.
  • Se uma credencial precisar ficar na configuração, criptografe-a com criptografia autenticada usando uma chave que a aplicação busca em um cofre gerenciado, nunca base64.
  • Restrinja o acesso de leitura a arquivos de configuração, backups e logs para que o valor armazenado não fique exposto sem necessidade.
  • Rotacione qualquer credencial que já tenha sido armazenada em base64, pois ela deve ser tratada como já divulgada.

Solução completa

Membros Pro e Max desbloqueiam o passo a passo completo.

Assinar Pro

Estatísticas da comunidade

177 resoluções
89% taxa de sucesso
Hope Primeiro sangue

Hacks de hoje relacionados

22.000+ Hackers 100+ Labs & Cursos Grátis
Comece Grátis