
Laboratório vulnerável baseado em Docker e relatório detalhado de PoC para injeção SQL CVE-2023-25157/25158 no GeoServer & GeoTools, com 4 vetores de ataque verificados e análise.
Ambiente de prática (Laboratório Vulnerável) e Relatório detalhado de análise de exploração da vulnerabilidade Injeção SQL (baseada em erro) no GeoServer (CVE-2023-25157) e na biblioteca GeoTools (CVE-2023-25158).
Consulte o documento de análise completo com imagens de PoC ilustrando cada camada no relatório oficial:
(O relatório inclui: Princípio do erro na camada CQL Parser e SQL Translator, explicação do formato do filtro OGC XML, análise detalhada de 4 vetores de ataque, payloads, consultas SQL reais no banco de dados e recomendações de correção).
| Propriedade | Detalhe |
|---|---|
| ID CVE | CVE-2023-25157 (GeoServer) & CVE-2023-25158 (GeoTools) |
| Tipo de vulnerabilidade | Injeção SQL baseada em erro |
| Severidade | Crítica — CVSS v3.1: 9.8 |
| Produtos afetados | GeoServer < 2.23.1, < 2.22.3, < 2.21.4 / GeoTools < 29.2, < 28.4, < 27.5 |
| Protocolo de exploração | OGC Web Feature Service (WFS) v1.0.0 / v2.0.0 |
| Autenticação necessária | Não necessária (quando o serviço WFS está configurado com AccessConstraints: NONE) |
Neste laboratório, 4 vetores de ataque reais foram verificados e analisados detalhadamente em REPORT.md:
strStartsWith): Exploração através da função de verificação de prefixo de string no CQL_FILTER (HTTP GET).strEndsWith): Exploração através da função de verificação de sufixo de string no CQL_FILTER (HTTP GET).PropertyIsLike): Exploração através da tag de filtro padrão OGC XML Filter manipulando o caractere de escape escape (HTTP POST) — Vetor mais perigoso que funciona em todas as configurações padrão.FeatureId): Exploração através do parâmetro de filtro por chave primária do tipo String quando preparedStatements = false.No diretório raiz do projeto, abra o Terminal e execute o comando:
docker compose up -d
O sistema iniciará 2 contêineres:
vulhub com as tabelas example e example_str).Verifique o log do GeoServer para garantir que o serviço foi iniciado completamente:
docker compose logs -f geoserver
Quando aparecer a mensagem CONFIGURATION COMPLETE, é possível acessar o GeoServer em:
http://localhost:8080/geoserver/web/admin / geoserverPara desligar os contêineres e liberar recursos:
# Tắt lab (giữ lại dữ liệu database)
docker compose down
# Tắt lab và xóa sạch toàn bộ dữ liệu volume
docker compose down -v
├── REPORT.md # Báo cáo phân tích kỹ thuật & PoC chi tiết
├── docker-compose.yml # Cấu hình khởi tạo môi trường lab GeoServer + PostgreSQL
├── init.sql # Script khởi tạo database và dữ liệu mẫu cho lab
├── startup.sh # Script cấu hình tự động GeoServer khi khởi chạy container
└── img/ # Thư mục chứa hình ảnh minh chứng PoC