
Advisory e prova de conceito para uma vulnerabilidade de injeção SQL cega baseada em tempo em um sistema de compras online, incluindo detalhes técnicos, análise de impacto e recomendações de remediação.
CVE: CVE-2025-52021
Título: Injeção SQL Cega Baseada em Tempo via parâmetro product_id em edit_product.php
Fornecedor / Repositório: PuneethReddyHC — https://github.com/PuneethReddyHC/online-shopping-system-advanced
Versão Afetada: 1.0 (branch/tag master no momento do teste)
Descobridor: Hafiz Pradana Gemilang
Status da Divulgação: Fornecedor notificado de forma privada. PoC de exploração completo retido da divulgação pública para segurança do usuário.
Uma vulnerabilidade de injeção SQL cega baseada em tempo foi encontrada em admin/admin/edit_product.php do Online Shopping System Advanced v1.0. O parâmetro GET product_id é interpolado em uma consulta SQL sem validação ou parametrização adequada. Um atacante pode injetar funções de atraso de tempo (ex.: ) para observar atrasos na resposta do servidor e inferir o comportamento do banco de dados, confirmando um ponto remoto de injeção SQL.
SLEEPNota: Este aviso exclui intencionalmente um payload de exploração executável. Detalhes de prova de conceito foram compartilhados de forma privada com o mantenedor para permitir a correção.
/admin/admin/edit_product.php?product_id=<valor>
URL de teste local de exemplo:
http://<host>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0
product_id (GET)admin/admin/edit_product.phpproduct_id e incluí-lo em uma instrução SQL sem parametrização.Tentativas de injeção baseadas em temporização usando a semântica SLEEP() do banco de dados produziram atrasos mensuráveis no servidor, consistentes com uma injeção bem-sucedida:
SLEEP(6) → atraso de resposta observado ≈ 6,01sSLEEP(15) → atraso de resposta observado ≈ 15,00sSLEEP(0) → atraso de resposta de linha de base ≈ 0,01sEsses resultados indicam um ponto de injeção SQL cega que permite inferência baseada em tempo. O nome do banco de dados observado durante os testes: onlineshop.
A exploração bem-sucedida desta vulnerabilidade permite que atacantes:
Severidade estimada: Alta
product_id que inclua construções SQL de atraso de tempo (testes realizados com variações de SLEEP()).PoC passo a passo completo omitido do aviso público — entre em contato com o relator para obter o PoC criptografado sob os termos de divulgação responsável.
$stmt = $pdo->prepare('SELECT * FROM products WHERE id = ?');
$stmt->execute([$product_id]);
product_id como um inteiro e valide de acordo (ex.: filter_input(INPUT_GET, 'product_id', FILTER_VALIDATE_INT)).DROP, ALTER, GRANT ou direitos administrativos).(Incluído para conveniência do fornecedor/mantenedor — não publique payloads de PoC publicamente)
sqlmap -u "http://<host>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0" --dbms=mysql --batch --level=5 --risk=3 --technique=T --time-sec=6
Descobridor: Hafiz Pradana Gemilang
Fornecedor / Repositório: https://github.com/PuneethReddyHC/online-shopping-system-advanced
Aviso legal: Este aviso público omite payloads exploráveis para proteger os usuários. Detalhes técnicos completos e PoC estão disponíveis para o fornecedor mediante solicitação, sob uma política de divulgação responsável acordada.