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
وتم تأكيد الثغرة وتقييمها ضمن البرنامج ✅
نصيحة أخيرة:
مو دايم الحل في التعقيد.
أحيانًا كل اللي تحتاجه بس إنك تفكر بطريقة مختلفة وتراقب النمط اللي قد يكون بسيط جدًا…
بس يفتح لك أبواب كثير.
يعطيكم العافية، وأعتذر على الإطالة
