
مختبر ضعيف قائم على Docker وتقرير PoC مفصل لـ CVE-2023-25157/25158 حقن SQL في GeoServer و GeoTools، مع 4 نواقل هجوم تم التحقق منها وتحليل.
بيئة تدريب عملي (Vulnerable Lab) وتقرير تحليل واستغلال مفصل لثغرة حقن SQL (Error-based) في GeoServer (CVE-2023-25157) ومكتبة GeoTools (CVE-2023-25158).
يُرجى الاطلاع على الوثيقة التحليلية الكاملة مع صور PoC التوضيحية لكل طبقة في التقرير الرسمي:
(يتضمن التقرير: مبدأ إحداث الخلل في طبقة CQL Parser وSQL Translator، شرح تنسيق OGC XML Filter، تحليل تفصيلي لأربعة نواقل هجوم، والحمولات (payloads)، واستعلامات SQL الفعلية في قاعدة البيانات، والتوصيات العلاجية).
| الخاصية | التفاصيل |
|---|
| معرف CVE | CVE-2023-25157 (GeoServer) وCVE-2023-25158 (GeoTools) |
| نوع الثغرة | حقن SQL قائم على الخطأ (Error-based SQL Injection) |
| خطورة الثغرة | حرجة — 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): الاستغلال عبر معامل التصفية حسب المفتاح الأساسي من نوع String عندما تكون preparedStatements = false.في المجلد الجذري للمشروع، افتح الطرفية (Terminal) ونفّذ الأمر:
docker compose up -d
سيقوم النظام بتشغيل حاويتين:
vulhub مع الجدولين example وexample_str).تحقق من سجلات GeoServer للتأكد من اكتمال بدء الخدمة:
docker compose logs -f geoserver
عند ظهور الرسالة CONFIGURATION COMPLETE، يمكن الوصول إلى GeoServer عبر:
http://localhost:8080/geoserver/web/admin / geoserverلإيقاف الحاويات وتحرير الموارد:
# إيقاف المختبر (مع الاحتفاظ ببيانات قاعدة البيانات)
docker compose down
# إيقاف المختبر وحذف جميع بيانات الحاويات بالكامل
docker compose down -v
├── REPORT.md # تقرير التحليل الفني وPoC المفصل
├── docker-compose.yml # إعداد بيئة مختبر GeoServer + PostgreSQL
├── init.sql # سكربت إنشاء قاعدة البيانات والبيانات التجريبية للمختبر
├── startup.sh # سكربت الإعداد التلقائي لـ GeoServer عند تشغيل الحاوية
└── img/ # مجلد يحتوي على صور إثبات المفهوم (PoC)