Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-1094-PoC-Postgre-SQLi — Эмуляция и анализ proof-of-concept для CVE-2025-1094, критической уязвимости SQL-инъекций в PostgreSQL. Включает Docker-лабораторию, эксплойт-скрипт, анализ первопричины и пошаговую демонстрацию для тестирования безопасности и обучения. | Kitploit
Инструменты/GitHubGitHub/ishwardeepp/cve-2025-1094-poc-postgre-sqli
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеБезопасность Баз ДанныхЛаборатории и Практика
GitHub
ishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

Эмуляция и анализ proof-of-concept для CVE-2025-1094, критической уязвимости SQL-инъекций в PostgreSQL. Включает Docker-лабораторию, эксплойт-скрипт, анализ первопричины и пошаговую демонстрацию для тестирования безопасности и обучения.

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

Популярное

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

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

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

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

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

Анализ CVE-2025-1094 и настройка эмуляции

Этот детальный анализ, проведенный 14 марта 2025 года, исследует CVE-2025-1094 — гипотетическую уязвимость SQL-инъекции высокой степени серьезности в PostgreSQL, основанную на предоставленной настройке эмуляции и выполнении доказательства концепции (PoC). Анализ охватывает введение в уязвимость, первопричину, вклад файлов, шаги PoC и меры смягчения, включая все сложные детали процесса эмуляции.

Introduction to the Vulnerability

CVE-2025-1094 описывается как критическая ошибка SQL-инъекции в PostgreSQL, затрагивающая версии до 17.3, 16.7, 15.11, 14.16 и 13.19, с базовой оценкой CVSS 3.1 равной 8.1, что указывает на значительное влияние на конфиденциальность, целостность и доступность. Она позволяет злоумышленникам получать доступ к конфиденциальным данным или выполнять удаленный код (RCE) и была использована в реальных атаках, таких как инцидент с BeyondTrust, затронувший 17 корпоративных клиентов, о котором сообщалось на BleepingComputer, и утечка в Казначействе США, описанная в The Register. Эмуляция, проведенная 14 марта 2025 года, использовала Docker с server_encoding=EUC_TW и client_encoding=BIG5, что было критически важно для активации эксплойта. PoC включал внедрение блока DO для создания большого объекта, чтение /etc/passwd через pg_read_file, запись его в большой объект с помощью lo_put и экспорт в /tmp/payload с использованием lo_export, что подтверждает роль несоответствия кодировок в обеспечении несанкционированного доступа к файлам.

Root Cause Analysis

Первопричина классифицируется как CWE-149: Improper Neutralization of Quoting Syntax (неправильная нейтрализация синтаксиса кавычек), что связано с некорректной обработкой в функциях libpq PostgreSQL — PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() и PQescapeStringConn() — которые не нейтрализуют синтаксис кавычек, когда результаты используются для построения ввода для инструмента командной строки psql. Это усугубляется, когда client_encoding установлен в BIG5, а server_encoding — в EUC_TW, как в нашей настройке, что позволяет SQL-инъекцию. Для эмуляции требовались EUC_TW и zh_TW.EUC_TW для создания несоответствия, при этом проблемы, такие как отсутствие поддержки EUC_TW в psycopg2, решались подключением через UTF8 с последующим переключением на BIG5. Успех эксплойта зависел от выполнения необработанного SQL через subprocess.run(["psql", ...]), что обходило безопасную обработку запросов, как подробно описано в журналах.

File Explanations and Contributions

Каждый файл в настройке играет решающую роль в эмуляции CVE-2025-1094. Ниже приведен подробный разбор в табличной форме:

Таблица: Сводка вклада файлов

ФайлЧто он делаетВклад в PoCЗачем он нужен
exploit.pyОтправляет POST-запрос с блоком DO для создания и экспорта большого объекта, читая /etc/passwd.Запускает SQL-инъекцию, использует несоответствие кодировок для выполнения произвольных SQL-команд.Обеспечивает выполнение эксплойта, критично для воздействия PoC.
app.pyFlask-приложение, предоставляющее /vuln-endpoint, выполняет необработанный SQL через psql.Предоставляет уязвимую конечную точку для эксплойта.Точка входа для эксплойта, необходима для демонстрации уязвимости.
init.sqlСоздает тестовую таблицу с id VARCHAR(255) для строковых входных данных.Настраивает схему для инъекции, обеспечивает выполнение полезной нагрузки без ошибок типов.Настройка базы данных для эксплойта, необходима для SQL-инъекции.
DockerfileСоздает контейнер Flask-приложения с необходимыми зависимостями.Создает изолированный сервис приложения для развертывания конечной точки.Развертывает уязвимое приложение, критично для воспроизводимости PoC.
docker-compose.ymlОпределяет и связывает сервисы db и app с определенными конфигурациями.Оркестрирует настройку, обеспечивает несоответствие кодировок и зависимости сервисов.Связывает сервисы, необходим для настройки среды и изоляции.
Dockerfile.dbСоздает контейнер PostgreSQL с кодировкой EUC_TW.Создает уязвимую базу данных с требуемой кодировкой.Настраивает базу данных с требуемой кодировкой, критично для активации уязвимости.

Proof-of-Concept Steps

PoC, выполненный 14 марта 2025 года, демонстрирует воздействие эксплойта с помощью следующих шагов, каждый с подробным объяснением:

  1. sudo docker compose up --build

    • Что делает: Собирает и запускает сервисы Docker Compose (db и app), создавая контейнеры с обновленными образами при необходимости, и связывает их в сети postgre_default. Обеспечивает настройку уязвимой среды, где db использует кодировку EUC_TW, а app предоставляет /vuln-endpoint на порту 5000, что критически важно для несоответствия кодировок эксплойта и доступа к конечной точке.
    • Зачем это нужно: Настраивает необходимую среду для работы эксплойта, обеспечивая запуск и правильную конфигурацию всех сервисов.
  2. curl -X POST http://localhost:5000/vuln-endpoint -d "input=test"

    • Что делает: Отправляет POST-запрос к конечной точке Flask-приложения с input=test, проверяя связь и базовую функциональность, ожидая ответ "Executed". Подтверждает, что приложение запущено и может подключаться к базе данных, гарантируя готовность настройки к эксплойту.
    • Зачем это нужно: Убеждается, что конечная точка доступна и функциональна перед выполнением эксплойта, что соответствует шагам проверки PoC.
    • Проверка настройки
  3. python3 cve-2025-1094-exploit.py

    • Что делает: Запускает скрипт эксплойта, отправляя POST-запрос с блоком DO для создания большого объекта, записи в него /etc/passwd и экспорта в /tmp/payload, выводя статус выполнения. Запускает SQL-инъекцию, используя уязвимость для чтения /etc/passwd, что критически важно для демонстрации воздействия CVE-2025-1094, как видно из журналов с успешным экспортом файла.
    • Зачем это нужно: Выполняет основной эксплойт, показывая, как злоумышленники могут получить доступ к конфиденциальным данным, что соответствует цели PoC по эмуляции реальных атак.
    • Запуск эксплойта
  4. sudo docker ps

    • Что делает: Выводит список запущенных контейнеров, проверяя, что postgre-app-1 и postgre-db-1 работают. Подтверждает настройку перед запуском эксплойта, гарантируя активность обоих сервисов, что критически важно для надежности PoC. Предоставляет пользователю идентификатор контейнера, необходимый для последующих команд.
    • Зачем это нужно: Убеждается, что все необходимые сервисы работают, предоставляя контрольную точку перед дальнейшими шагами эксплуатации.
Скачать инструмент