Blog Wallpaper
A
ALI ALAKABRالجمعة، 1 أغسطس 2025

اختراق بيئة Staging عبر Clockwork: تحليل ثغرة وصول غير مصرح به

منذ 17 يوم

Area Iconالأمن السيبراني - صيد الثغرات

راح أشارك رحلة ممتعة واستكشافية داخل بيئة اختبار خاصة بشركة أمنية، انتهت باكتشاف ثغرة أمنية خطيرة جدًا في أداة يستخدمها الكثير من مطوري PHP تُدعى Clockwork. والهدف من هذا الشرح مو بس توثيق الاكتشاف، بل أيضًا تبسيط المفاهيم بحيث حتى المبتدئ في مجال الأمن المعلوماتي يقدر يفهم الخطوات وحدة وحدة.


ما هو Clockwork؟

هو أداة مخصصة لمطوري PHP، تُستخدم لمراقبة وتحليل أداء التطبيق، عرض استعلامات قاعدة البيانات، الطلبات، الاستجابات، الجلسات، وغيرها من التفاصيل أثناء التطوير. الأداة تشتغل عادة في بيئة "localhost" (بيئة المطور)، وما مفروض تكون متاحة للعامة في بيئة الإنتاج.

لكن...

إذا صار خطأ في الإعدادات، أو تم تجاهل جزئية معينة من التحقق، قد تتحول هالأداة من وسيلة مفيدة إلى خطر أمني كبير.


نظرة عامة على الثغرة

الخطأ كان في بيئة اختبارية (staging) تابعة لشركة Patchstack، واللي وفّرت إمكانية الدخول إلى Clockwork من خارج localhost. هذا سمح لي أنا (المهاجم) أشوف معلومات حساسة: مثل التوكنات، الإيميلات، الجلسات، وأحيانًا حتى السيطرة الكاملة على الحساب.


تفاصيل تقنية: كيف تشتغل Clockwork؟

isEnabled مفتاح تشغيل الأداة

هذا الميثود (الدالة) تقرر إذا Clockwork لازم تشتغل أو لا. شكلها في الكود كالتالي:

Code 1
Code 1

ببساطة:

  • إذا الإعدادات تقول enable = true تشتغل.
  • إذا ما محددة، تشتغل بس إذا التطبيق في وضع debug والطلب جاي من localhost أو من terminal.

hasLocalHost هل الطلب يأتي من بيئة تطوير؟

هنا كان الخلل الأكبر. الكود:

Code 2
Code 2

المشكلة؟ ببساطة تقدر تخدع السيرفر عن طريق تغيير قيمة الـ Host في الهيدر، وتخليه يعتقد أنك من localhost.


كيف استغليت الثغرة؟

الخطوة 1 : إيجاد بيئة الـ Staging

حصلت بيئة staging تابعة لـ Patchstack عن طريق ملاحظة header اسمه Access-Control-Allow-Origin. من هناك استخدمت أداة بحث متقدمة (مثل Shodan أو ZoomEye) وحددت الـ IPs.

Censys
Censys

الخطوة 2 : استخدام ffuf للبحث عن Clockwork

ffuf -w ips.txt:IP -u http://IP/__clockwork/latest -H "Host: 127.0.0.1" -mc 200

أداة ffuf ساعدتني احصل Endpoint Clockwork شغال بدون حماية.

الخطوة 3 : تحليل API الخاص ببيئة الاختبار

لقيت إيندبوينتات مثيرة:

  • /researchers يعرض إيميلات الباحثين بدون تسجيل دخول!
  • /magic-link يرسل رابط تسجيل دخول (توكن).
  • /login يسمح بتسجيل الدخول باستخدام التوكن.

الخطوة 4: سيناريو الاستغلال الكامل

  1. أخذت إيميل أي مدير من /researchers.
  2. أرسلت له Magic Link وهمي عن طريق /magic-link.
  3. Clockwork كان يسجل كل الطلبات، فأخذت التوكن من اللوج.
Logs
Logs
  1. استخدمته في /login وسويت تسجيل دخول كمدير!
Login Page
Login Page
  1. دخلت على Laravel Telescope وحصلت صلاحيات كاملة على النظام.
Laravel Telescope
Laravel Telescope

التأثير المحتمل

  • سرقة حسابات المدراء.
  • مشاهدة كل طلبات المستخدمين.
  • الحصول على توكنات حساسة.
  • في بعض الحالات، تنفيذ هجمات داخلية أكبر أو حتى السيطرة على السيرفر.

التوصيات والإصلاح

  • لا تعتمد على فحص الـ Host وحده لتحديد إذا الطلب داخلي.
  • فعّل حماية Clockwork بـ IP filtering، Basic Auth، أو إيقافه تمامًا في بيئة staging.
  • راقب كل أدوات الـ Debug بشكل دوري.
  • لا تترك بيئة Staging مكشوفة للإنترنت بدون قيود.

تم التبليغ عنها بواسطة 0vulns

سوبرسايبر | اختراق بيئة Staging عبر Clockwork: تحليل ثغرة وصول غير مصرح به