sexta-feira, 13 de março de 2026

Capture Flag - Segurança em BD - 2

🔐 Desafio #02: O Cofre Transparente (Hashing)

Nível: Médio Tópico: Criptografia de Credenciais

Olá, Auditores! No desafio anterior, protegemos a porta de entrada. Hoje, vamos proteger o que está dentro do cofre. Analisem o sistema de cadastro abaixo que armazena senhas em texto puro:

🚩 A Vulnerabilidade: Se a tabela 'usuarios' for vazada, todas as senhas estarão expostas. Seu objetivo é implementar Salt e Hashing.

Código-Fonte Sob Auditoria:


import sqlite3

# FUNÇÃO VULNERÁVEL - NÃO COPIE PARA PRODUÇÃO!
def salvar_senha_no_banco(login, senha_aberta):
    conn = sqlite3.connect('seguranca_bd.db')
    cursor = conn.cursor()

    # ERRO GRAVE: Senha sendo salva sem tratamento
    query = "INSERT INTO usuarios (usuario, senha) VALUES (?, ?)"
    cursor.execute(query, (login, senha_aberta))
    
    conn.commit()
    print("Usuário cadastrado com sucesso (e senha exposta!)")

# Exemplo: salvar_senha_no_banco('admin', '123456')
    

Missão do Auditor:

  1. Identifique por que salvar senhas assim viola as normas de conformidade.
  2. Reescreva a função usando a biblioteca bcrypt ou hashlib.
  3. Explique o papel do SALT no processo de hashing.
🔑 ACESSAR PORTAL DE ENTREGA (Prof. Carlos)

Dica: A senha de acesso ao formulário será passada no final da aula síncrona.

Nenhum comentário:

Postar um comentário