
Уязвимая лаборатория на основе Docker и подробный отчет PoC для CVE-2023-25157/25158 SQL-инъекции в GeoServer и GeoTools, с 4 проверенными векторами атак и анализом.
Среда для практики (Vulnerable Lab) и подробный отчет об эксплуатации уязвимости SQL Injection (Error-based) в GeoServer (CVE-2023-25157) и библиотеке GeoTools (CVE-2023-25158).
Полный анализ с изображениями PoC для каждого уровня смотрите в официальном отчете:
(Отчет включает: принцип возникновения ошибки на уровне парсера CQL и SQL-транслятора, объяснение формата фильтра OGC XML, подробный анализ 4 векторов атак, payload, реальные SQL-запросы в базе данных и рекомендации по устранению).
В данной лаборатории были проверены и подробно проанализированы 4 реальных вектора атаки в [REPORT.md](. /REPORT.md):
strStartsWith): Эксплуатация через функцию проверки префикса строки в CQL_FILTER (HTTP GET).strEndsWith): Эксплуатация через функцию проверки суффикса строки в CQL_FILTER (HTTP GET).PropertyIsLike): Эксплуатация через манипуляцию escape-символом в стандартном XML-фильтре OGC (HTTP POST) — Самый опасный вектор, работающий во всех конфигурациях по умолчанию.FeatureId): Эксплуатация через параметр фильтра по первичному ключу строкового типа при preparedStatements = false.В корневой директории проекта откройте терминал и выполните команду:
docker compose up -d
Система запустит 2 контейнера:
vulhub с таблицами example и example_str).Проверьте логи GeoServer, чтобы убедиться, что сервис полностью запущен:
docker compose logs -f geoserver
Когда появится сообщение CONFIGURATION COMPLETE, можно обращаться к GeoServer по:
http://localhost:8080/geoserver/web/admin / geoserverЧтобы остановить контейнеры и освободить ресурсы:
# Остановить лабораторию (сохранить данные базы)
docker compose down
# Остановить лабораторию и удалить все данные volume
docker compose down -v
├── REPORT.md # Технический отчет об анализе и подробный PoC
├── docker-compose.yml # Конфигурация для запуска лабораторной среды GeoServer + PostgreSQL
├── init.sql # Скрипт инициализации базы данных и демонстрационных данных
├── startup.sh # Скрипт автоматической настройки GeoServer при запуске контейнера
└── img/ # Директория с изображениями, подтверждающими PoC
| Свойство | Детали |
|---|
| CVE ID | CVE-2023-25157 (GeoServer) и CVE-2023-25158 (GeoTools) |
| Тип уязвимости | Error-based SQL Injection |
| Серьезность | Critical — CVSS v3.1: 9.8 |
| Затронутые продукты | GeoServer < 2.23.1, < 2.22.3, < 2.21.4 / GeoTools < 29.2, < 28.4, < 27.5 |
| Протокол эксплуатации | OGC Web Feature Service (WFS) v1.0.0 / v2.0.0 |
| Требование аутентификации | Не требуется (когда сервис WFS настроен с AccessConstraints: NONE) |