Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2024-36401-geoserver-rce — دراسة قابلة لإعادة الإنتاج لـ CVE-2024-36401: RCE غير مصادق عليه في GeoServer عبر حقن تقييم JXPath. يتضمن تقريرًا فنيًا واستغلالًا/مدققًا عمليًا وبيئة Docker توضح الخلل في الحالات الضعيفة مقابل المصححة. | Kitploit
أدوات/GitHubGitHub/danielegiovanardi2408/cve-2024-36401-geoserver-rce
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليم
GitHubdanielegiovanardi2408/cve-2024-36401-geoserver-rce

cve-2024-36401-geoserver-rce

دراسة قابلة لإعادة الإنتاج لـ CVE-2024-36401: RCE غير مصادق عليه في GeoServer عبر حقن تقييم JXPath. يتضمن تقريرًا فنيًا واستغلالًا/مدققًا عمليًا وبيئة Docker توضح الخلل في الحالات الضعيفة مقابل المصححة.

عرض المستودع
10منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-36401 — استغلال تنفيذ التعليمات البرمجية عن بُعد دون مصادقة في GeoServer

CVE CVSS CISA KEV Type License

دراسة كاملة وقابلة لإعادة الإنتاج لثغرة CVE-2024-36401، وهي خلل في تنفيذ التعليمات البرمجية عن بُعد دون مصادقة في GeoServer — الخادم مفتوح المصدر الأكثر انتشارًا للبيانات الجغرافية المكانية. يعود السبب الجذري للخلل إلى حقن التقييم (eval injection): عبر معاملات معايير OGC، يمرّر GeoServer أسماءَ خصائص يتحكم بها المهاجم إلى GeoTools، حيث تقوم مكتبة Apache Commons JXPath بتقييمها كتعبيرات XPath ويمكنها، بحكم تصميمها، استدعاء أي دوال Java عشوائية عبر الانعكاس (reflection). لذلك فإن طلبًا دون مصادقة مثل exec(java.lang.Runtime.getRuntime(),'id') ينفّذ أوامر على المضيف.

يحتوي هذا المستودع على التقرير الفني، وأداة استغلال/تحقق عاملة، وبيئة Docker بأمر واحد توضح تنفيذ التعليمات البرمجية عن بُعد على نسخة قابلة للاستغلال وتُظهر فشل نفس الاستغلال على النسخة المصحّحة.

مشروع تعليمي. أُعدّ لمقرر جامعي (خصوصية البيانات وأمنها، LUISS DASMA). كل شيء يعمل فقط ضد حاويات محلية ومعزولة — انظر الاستخدام المسؤول.

نظرة سريعة

الحقلالقيمة
CVE (GeoServer)CVE-2024-36401
السبب الجذري (GeoTools)CVE-2024-36404
النوعتنفيذ تعليمات برمجية عن بُعد دون مصادقة
CWECWE-95، حقن تقييم (Eval Injection)
CVSS v3.19.8 حرِج (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
المتأثرGeoServer < 2.25.2 / GeoTools < 31.2 (والفروع الأقدم)
CISA KEVنعم (15 يوليو 2024)
الإصدارات المدروسةالقابلة للاستغلال 2.25.1، المصحّحة 2.25.2

بنية المستودع

root@kitploit:~
.
├── report/
│   ├── report.pdf            # التقرير الفني الكامل (اقرأ هذا أولًا)
│   ├── report.md             # مصدر التقرير (Pandoc/XeLaTeX)
│   └── images/               # الأشكال ولقطات الشاشة
├── docker/
│   ├── vulnerable/Dockerfile # GeoServer 2.25.1 (قابل للاستغلال)
│   └── patched/Dockerfile    # GeoServer 2.25.2 (مصحّح)
├── docker-compose.yml        # النسخة القابلة للاستغلال على :8080، والمصحّحة على :8081
├── exploit/
│   ├── exploit.py            # الاستغلال + أداة تحقق من القابلية للاستغلال/التصحيح (stdlib فقط)
│   ├── exploit.sh            # PoC يعتمد على curl (نسختا GET وPOST)
│   ├── payloads.md           # كتالوج الحمولات حسب نقطة نهاية OGC
│   └── output/               # سجلات الإثبات ونسخ الجلسات الملتقطة
└── run-reproduction.sh       # أمر واحد: بناء كلتيهما + استغلالهما + جمع الأدلة

بدء سريع

المتطلبات: تشغيل Docker Desktop و python3 و curl.

root@kitploit:~
# بناء الحاويتين، تشغيل الاستغلال ضد كل منهما، وجمع الأدلة
chmod +x run-reproduction.sh
./run-reproduction.sh

أو خطوة بخطوة:

root@kitploit:~
docker compose up -d --build       # النسخة القابلة للاستغلال على :8080، والمصحّحة على :8081

# القابلة للاستغلال (متوقع: VULNERABLE، تأخير ~8 ثوانٍ)
python3 exploit/exploit.py -t http://localhost:8080/geoserver --label vuln -o exploit/output

# المصحّحة (متوقع: PATCHED، رفض فوري)
python3 exploit/exploit.py -t http://localhost:8081/geoserver --label patched -o exploit/output

docker compose down                # عند الانتهاء

كيف يعمل الاستغلال

يستخدم اختباران مستقلان لجعل النتيجة غير قابلة للالتباس:

  • أعمى (قائم على الوقت): java.lang.Thread.sleep(8000) يحجب الخيط الذي يقيّم تعبير XPath، لذا يتأخر استجابة HTTP نحو 8 ثوانٍ — يمكن قياسه من العميل دون الحاجة إلى الوصول إلى الحاوية. وهو نفس مؤشر الاختبار (canary) المستخدم في اختبارات الإصلاح الرسمية.
  • ملف (تنفيذ أوامر): exec(java.lang.Runtime.getRuntime(),'touch /tmp/<marker>') ينشئ ملفًا داخل الحاوية، يمكن التحقق منه بواسطة docker exec.

على النسخة القابلة للاستغلال، فإن إرسال الحمولة يدويًا يعيد ClassCastException على ProcessImpl — أي أن JVM نفّذت Runtime.exec ثم فشلت في استخدام كائن Process الناتج كخاصية. هذا الاستثناء هو دليل التنفيذ:

WFS GetPropertyValue مع حمولة exec تعيد ClassCastException على النسخة القابلة للاستغلال

الإصلاح

يُطبّق إصدار GeoTools e53e5170 (في GeoServer 2.25.2 و 2.24.4 و 2.23.6 و 2.22.6) دفاعًا متعمّقًا على شقّي الخلل معًا:

  • المصرف (Sink): تساعد الدالة المساعدة JXPathUtils.newSafeContext(...) في تثبيت FunctionLibrary فارغ، فلا يعود بإمكان JXPath حلّ exec/Thread.sleep كدوال — فيبقى النص مجرد اسم خاصية عادي.
  • النطاق: يتحقق FeaturePropertyAccessorFactory الآن أيضًا من SimpleFeatureType، بحيث لا تصل المعالم البسيطة إلى المُمرّر الضعيف.

على النسخة المصحّحة، يعيد نفس الحمولة No such attribute: ... ولا يُنفَّذ شيء.

التفاصيل الكاملة — الكود المتأثر مع مراجع الملفات والأسطر، والاستغلال، وفرق التصحيح، وإعادة الإنتاج جنبًا إلى جنب — موجودة في report/report.pdf.

الاستخدام المسؤول

هذه الثغرة عامة، وقد تم تصحيحها منذ أكثر من 18 شهرًا، وهي مدرجة في كتالوج CISA للثغرات المستغلة المعروفة، ولها أدوات PoC عامة (Vulhub و Nuclei و Metasploit). الكود هنا يستهدف localhost فقط وحاويات الدراسة المعزولة في هذا المستودع. لا تستخدمه ضد أنظمة لا تملكها أو غير مخوّل باختبارها صراحةً.

الترخيص

MIT © 2026 Daniele Giovanardi

المؤلف

Daniele Giovanardi — علوم البيانات والإدارة (DASMA)، LUISS Guido Carli. أعمال مقرر خصوصية البيانات وأمنها.

تنزيل الأداة