Sitemap
2 min readJul 30, 2025

Arabic | From Path Guessing to Dashboard Takeover: Full Access to Government Data via Broken Access Control

مسّاكم الله بالخير،

هذا أول Write-up لي، وإن شاء الله يكون خفيف لطيف ويضيف لكم شيء جميل 🙏🏼

الثغرة كانت في نطاق حكومي ضمن أحد برامج Bugcrowd، وطبعًا احترمًا للخصوصية غيّرت بعض التفاصيل في السيناريو.

نبدأ بسم الله:

وأنا أراجع أحد الأنظمة الحكومية، لاحظت شيء غريب:

كل دولة لها صفحة تسجيل دخول خاصة فيها، مثل:

/login_newzealand_indicators.php

واضح من الاسم إنها مخصصة لعرض أو تعديل مؤشرات دولة نيوزيلندا.

لفت انتباهي إن فيه نمط واضح جدًا (Pattern)،

وقلت بيني وبين نفسي:

“ليه ما أجرّب أبدّل كلمة login بـ update؟ يمكن ألقى شيء؟” 👀

وجربت…

/update_newzealand_indicators.php

والمفاجأة؟

انفتحت لوحة التحكم مباشرة!

بدون تسجيل دخول، بدون توكن، بدون سيشن، ولا حتى Cookie.

اللوحة كانت تحتوي على:

• تعديل مؤشرات الدولة

• إمكانية رفع ملفات

• حفظ التغييرات

وفي هاللحظة بالذات، قلت:

إذا نيوزيلندا مفتوحة… وش يمنع باقي الدول؟

رحت على طول للواجهة، جمعت منها أسماء الدول الظاهرة وسويت منها wordlist يدوي.

وبديت أجرب بنفس الطريقة:

/update_japan_indicators.php

/update_turkey_indicators.php

/update_sweden_indicators.php

والنتيجة؟

أكثر من 10 لوحات تحكم لدول مختلفة كانت مفتوحة بنفس الطريقة تمامًا!

بس القصة ما انتهت هنا…

وأنا أراجع ملفات الـ JavaScript – كعادتي أدور فيها على أي Endpoints معلنة -

لقيت أحد الملفات يحتوي على نفس الـ endpoint مكتوب بشكل مباشر:

update_newzealand_indicators.php

يعني مو بس endpoint مفتوح،

بل مُعلن عنه مباشرة في الكلاينت سايد (Front-End)!

خلونا نلخّص اللي صار:

• مافيه أي نوع من أنواع التحقق من الهوية

• لا Session

• لا Token

• لا CSRF

• ولا حتى Cookie بسيطة

• مجرد Endpoint مفتوح يسمح لك بتعديل بيانات الدول بكل حرية

🔐 تصنيف الثغرة (VRT):

[Broken Access Control] – Unauthenticated Data Modification

وتم تأكيد الثغرة وتقييمها ضمن البرنامج ✅

نصيحة أخيرة:

مو دايم الحل في التعقيد.

أحيانًا كل اللي تحتاجه بس إنك تفكر بطريقة مختلفة وتراقب النمط اللي قد يكون بسيط جدًا…

بس يفتح لك أبواب كثير.

يعطيكم العافية، وأعتذر على الإطالة