- بواسطة x32x01 ||
ليه Privilege Escalation دايمًا كنز في الاختبارات؟ 🔓🔥
من أكتر السيناريوهات الممتعة في اختبار الاختراق إنك تشتغل على نظام فيه أكتر من Role جوه نفس الـ Organization.أول ما تلاقي Admin / User / Manager تعرف إنك داخل على ملعب حلو 😎
ساعتها تركيزك الأساسي بيبقى على Privilege Escalation.
الفكرة ببساطة إنك تختبر كل سيكشن لوحده وتشوف:
- إزاي السيستم بيتعامل مع Unauthorized Requests
- هل بيرد بـ 401 / 403 / 500
- ولا بيقفل الباب وخلاص 🚪❌
الغلطة الشائعة: أول 403 ونمشي 😴❌
ناس كتير (حتى Devs و Testers) أول ما يشوفوا 403 Forbidden يقولوا:وده غلط كبير ❗"تمام، السيستم Secure"
ويمشوا على السيكشن اللي بعده.
لأن لو فكرت شوية، هتكتشف إن 95% من الأنظمة بتعمل الـ validation اعتمادًا على حاجة واحدة بس: JWT 👉
يعني إيه؟
يعني لو الـ JWT مكتوب فيها إنك User عادي، السيستم يفترض إنك مش هتوصل لأي Admin Section.
هنا بقى شغلك الحقيقي يبدأ 🧠💣
مهمتك كمختبر اختراق إنك:- تكسر الـ Validation Logic
- تدور على أي Header زيادة
- أو قيمة مش متوثقة صح
وأنا بختبر Subdomain تاني خالص، لقيت Header غريب شوية اسمه: X-Account
طبعًا أي حاجة غريبة كده تتحط في النوت فورًا 📝
المهم إن الهيدر ده كان بياخد ID المستخدم اللي باعت الريكويست.
لحظة الربط اللي بتفرق 🎯
رجعت تاني على الـ Subdomain الأساسي اللي بختبر عليه، وقلت: طب ما أجرب أغير قيمة الهيدر ده؟بدل ما أبعت ID بتاعي كمستخدم عادي:
- حطيت ID الأدمن
- وخلّيت الـ JWT زي ما هو (User عادي)
مثال عملي على الطلب اللي نجح 💻🚀
Code:
GET /dashboard/admin/index
X-Account: admin
Authorization: Bearer {Normal_User_JWT} ✔️ تجاهل الـ JWT
✔️ Access Granted 🎉
الدرس المهم لأي Pentester 👨💻📌
- متقفش عند أول 403
- دايمًا راجع الـ Headers
- أي حاجة تلاقيها في Subdomain تاني، جربها
- الـ Privilege Escalation غالبًا بيبقى Logic Flaw مش Bug واضح