sexta-feira, 13 de março de 2026

Capture Flag - Segurança em BD - 1

🛡️ Desafio Prático: Auditoria de Injeção SQL

Atividade Lab Disciplina: Segurança em Banco de Dados

Olá, pessoal! No desafio de hoje, vamos atuar como Auditores de Sistemas. Abaixo, você encontrará um trecho de código Python que realiza buscas em um banco de dados SQLite. Sua missão é identificar a falha crítica e corrigi-la.

⚠️ O Cenário: Um sistema de e-commerce está permitindo que usuários maliciosos visualizem dados de outros clientes apenas manipulando o campo de busca.

Trecho de Código Vulnerável:


import sqlite3

def buscar_usuario(nome_usuario):
    conn = sqlite3.connect('empresa.db')
    cursor = conn.cursor()

    # ANALISE ESTA LINHA:
    query = "SELECT * FROM usuarios WHERE nome = '" + nome_usuario + "'"
    
    print(f"Executando a query: {query}")
    cursor.execute(query)
    
    return cursor.fetchall()

# Exemplo de entrada que quebra a segurança:
# input_usuario = "admin' OR '1'='1"
    

O que deve ser entregue?

  • Explicação: Por que a concatenação acima é perigosa?
  • Correção: O código corrigido usando Parameterized Queries.
  • Script: Upload do arquivo .py ou .sql testado.

Nenhum comentário:

Postar um comentário