Minha Casa Minha Vida
Fui tentar acessar o sistema da minha casa, porém não me lembro da senha. Você pode inspecionar para mim?
Autor: @jackskelt
Ao acessar o site, podemos ver que ele possui um campo de senha, onde diz que a senha deve conter 12 caracteres.

Podemos inspecionar o código fonte da página. Podemos perceber que quando o usuário clica para verificar a senha, o site chama uma função chamada validatePassword(), e também há um script ofuscado que parece ser o responsável por validar a senha.

Deobfuscando o código com deobfuscate.io, achamos a função validatePassword().
Podemos dividir a função em 3 partes:
Verifica se a senha tem 12 caracteres.
Divide a senha em 4 partes, e faz algumas operações em cada parte.
Verifica se a senha gerada é igual a
F4#:}cMVUzIBke envia uma requisição para uma rota com a senha.
Podemos trocar o nome das variáveis para facilitar a leitura do código.
A senha que enviamos é dividida em 4 partes, e cada parte passa por uma transformação diferente. Vamos analisar cada parte:
Parte 1:
passwordParts[0].split('').reverse().join('')- Inverte a string.Parte 2:
passwordParts[1].split('').map(char => String.fromCharCode(char.charCodeAt(0) + 2)).join('')- Adiciona 2 ao valor ASCII de cada caractere.Parte 3:
btoa(passwordParts[2])- Codifica a string em Base64.Parte 4:
passwordParts[3].split('').map((char, index) => String.fromCharCode(char.charCodeAt(0) + index + 1)).join('')- Adiciona o índice + 1 ao valor ASCII de cada caractere.
Depois disso, as 4 partes são concatenadas e comparadas com a string F4#:}cMVUzIBk. Sendo assim, podemos montar a senha original com base nas operações que foram feitas:
Rodando o código, obtemos a senha original: #4F8{a1U3H@h.
Agora, podemos enviar a senha para o site e obter a flag.
hawk{t0p_10_c4s4s_m41s_s3gur4s}

Atualizado