
(Vulnerable Lab) 실습 환경 및 **GeoServer(CVE-2023-25157)**와 **GeoTools 라이브러리(CVE-2023-25158)**의 SQL Injection(Error-based) 취약점에 대한 상세 분석 및 익스플로잇 보고서.
공식 보고서에서 각 계층을 보여주는 PoC 이미지와 함께 전체 분석 문서를 확인하세요:
(보고서 내용: CQL 파서 및 SQL 변환기 계층의 오류 유발 원리, OGC XML Filter 형식 설명, 4가지 공격 벡터 상세 분석, 페이로드, 데이터베이스에서 실제 실행되는 SQL 쿼리 및 수정 권장 사항).
| 속성 | 세부 정보 |
|---|---|
| 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으로 설정된 경우) |
이 랩에서는 4가지 실제 공격 벡터를 검증하고 REPORT.md에서 상세히 분석했습니다:
strStartsWith): CQL_FILTER(HTTP GET)의 문자열 접두사 확인 함수를 통한 악용.strEndsWith): CQL_FILTER(HTTP GET)의 문자열 접미사 확인 함수를 통한 악용.PropertyIsLike): OGC XML Filter 표준 필터 태그에서 escape 이스케이프 문자를 조작하여 악용(HTTP POST) — 모든 기본 설정에서 동작하는 가장 위험한 벡터.FeatureId): preparedStatements = false일 때 String 유형 기본 키 기준 필터 매개변수를 통한 악용.프로젝트 루트 디렉터리에서 터미널을 열고 다음 명령을 실행합니다:
docker compose up -d
시스템이 2개의 컨테이너를 시작합니다:
example 및 example_str 테이블이 포함된 vulhub 데이터베이스가 미리 준비되어 있음).서비스가 완전히 시작되었는지 GeoServer 로그를 확인합니다:
docker compose logs -f geoserver
CONFIGURATION COMPLETE 메시지가 나타나면 다음 주소로 GeoServer에 접근할 수 있습니다:
http://localhost:8080/geoserver/web/admin / geoserver컨테이너를 중지하고 리소스를 해제하려면:
# 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