A pasta que se publicou sozinha: um diretório .git exposto

OSINT Nível 2/4 ~3 min 21 de outubro de 2026

O desafio

A Verdanta faz o deploy da loja rodando git pull no servidor web, o que é prático até você notar que o diretório .git inteiro está dentro da web root, servido para qualquer um que pedir. Um repositório não é só código-fonte: ele lembra como se comunica com a origem. A partir da recon box, confirme que o diretório está exposto e leia o único arquivo que transforma um deploy descuidado na credencial de outra pessoa. Informe o token de deploy que ele vaza.

O que você vai aprender

  • Confirmar um diretório .git exposto via HTTP
  • Ler o .git/config e encontrar a URL do remote origin
  • Reconhecer credenciais embutidas na URL de clone como um segredo vazado
  • Explicar por que um .git exposto vaza muito mais do que um único arquivo
  • Indicar como fazer deploy sem colocar o .git na raiz web

Habilidades testadas

Recon webInternos do GitCaça a credenciais

Pré-requisitos

  • Uso do curl
  • O que é um remote do git

Como funciona

Fazer deploy rodando git pull no servidor é prático e deixa o diretório .git inteiro ao lado do site. Se esse diretório estiver dentro da raiz web, o servidor entrega seus arquivos a qualquer um que pedir, sem autenticação.

O .git/config registra o remote origin. Quando um repositório foi clonado via HTTPS com usuário e senha na URL, o git grava essa URL, segredo incluído, direto no config. Uma única requisição devolve a credencial de deploy.

É pior do que um arquivo só: .git/objects e os packs permitem que um atacante reconstrua o histórico completo, recuperando todo segredo que já foi commitado e depois removido, todo caminho interno e todas as versões anteriores do código.

Erros comuns

  • Parar em .git/HEAD. Ele confirma a exposição, mas só informa o nome da branch; a credencial está no config.
  • Olhar só a raiz do site. A página inicial está limpa; o vazamento está em /.git/.
  • Responder o usuário ou o host. verdanta-ci e git.verdanta.example são contexto; o token é o valor depois dos dois-pontos.
  • Achar que é preciso o histórico inteiro. Aqui um arquivo basta, embora o histórico também seja recuperável.

Como se proteger

Mantenha o repositório fora da árvore servida e rotacione o que vazou.

  • Faça o deploy a partir de um artefato compilado ou de uma exportação com git archive, ou mantenha o checkout de trabalho fora da raiz de documentos. Nunca sirva o .git.
  • Bloqueie o acesso a diretórios e arquivos iniciados por ponto no servidor web, como defesa em profundidade.
  • Não embuta credenciais na URL de um remote. Use um credential helper ou uma deploy key, e rotacione qualquer token que já tenha sido escrito em uma URL.
  • Trate uma credencial que chegou ao .git/config como já pública.

Solução completa

Membros Pro e Max desbloqueiam o passo a passo completo.

Assinar Pro

Estatísticas da comunidade

181 resoluções
89% taxa de sucesso
M2F14M3 Primeiro sangue

Hacks de hoje relacionados

34.000+ Hackers Labs reais Grátis
Comece Grátis ou resolva o hack de hoje, sem conta