Weaknesses of type CWE-836
16 resultsUso de hash de senha em lugar da senha para autenticação
É quando a aplicação armazena ou transmite o hash da senha e o usa diretamente como credencial de autenticação, em vez de armazenar a senha e validar seu hash. Isso significa que quem captura o hash pode usá-lo imediatamente para se autenticar, sem precisar quebrar o hash — transformando-o em uma senha de facto.
Um API REST recebe um hash bcrypt do cliente, armazena esse hash como 'senha' no banco, e depois valida login comparando strings do hash diretamente, em vez de fazer hash da senha fornecida e comparar. Um atacante que rouba o banco consegue se autenticar mandando o mesmo hash.
Sempre receba a senha em texto claro (via HTTPS), faça o hash no servidor com algoritmo forte (bcrypt, argon2), e armazene apenas o hash. Na validação, faz hash da senha fornecida e compara com o hash armazenado — nunca transmita ou use o hash como credencial.