من ثغرة بسيطة الى وصولي للشبكة الداخلية لجهة كبير
قبل فترة كنت شغال على موقع تابع لجهة كبيرة، كنت أفحصه بشكل عادي، أدور أي مدخل بسيط ممكن أبدأ منه. الموقع كان محمي شوي وما فيه شي واضح بالبداية، لكن وأنا أتصفح وأجرب بعض الفنكشنز، شدّني واحد منها يخليك تطبع بيانات البروفايل بصيغة PDF.
قلت خلني امخمخ عليه، يمكن احصل شي…
بديت أختبرها بتكنيكات بسيطة، فا جربت HTML Injection بكود بسيط بصفحة البروفايل:
<h1>Test</h1>
وفعلاً… تفاجأت إن الكود اشتغل وانطبع كـ H1 داخل ملف الـ PDF
فا عرفت ان يمكن من خلالها اوصل لشي اقوى. جربت بعدها أستغل الثغرة باستخدام iframe عشان أوصل لملفات داخلية أو حساسة…
لكن ما قدرت، اعتقد بسبب الحماية أو الفلاتر الموجودة.
🔴 محاولة الوصول لمواقع داخلية للجهة 🔴
هنا جاتني فكرة اني احاول اوصل لمواقع داخلية مثل localhost لكن اول ما جربته طلع لي 403
حاولت اسوي fuzzing بس ما نفع كلهم يعطوني نفس النتيجة 403، وجربت اسوي brute force للبورتات لكن برضو ماضبطت
وقتها قلت خلني اسوي wordlist فيها كل ال internal ips لعلي اوصل لموقع داخلي
بعد ما بديت أجرب، واجهتني مشكلة إن الموقع ياخذ تقريبًا ٣ دقايق عشان يرد إذا الـ IP غير شغال. وأنا عندي لستة كبيرة فيها عدد كبير من الـ IPs، فا لما جربتهم بشكل سريع الموقع علق وصار بطيييء جدًا، فالفكرة ما كانت عملية نهائيًا.
فجتني فكرة ثانية، قلت خلني اعرف السيرفر اللي يسوي generate للـ pdf، فا حطيت رابط burp collaborator داخل iframe، وفعلًا قدرت احصل ip السيرفر:
ومن هنا قدرت اطلع الـ subdomain المرتبط بالـ ip
(https://t.co/qspGONMEop):
لاحظت ان الدومين مختلف لكن لنفس الجهة، ومربوط داخليًا وما اقدر اوصله من جهازي.
🔴 اكتشاف باقي الخدمات الداخلية 🔴
سويت Subdomain Enumeration على نفس الدومين القديم، وطلعت لي لستة كبيرة من السب دومينز. لاحظت إن بعضهم أقدر أوصل له من جهازي، وبعضهم لا. فقلت الفلترة هي الحل..
فلترت السب دومينز اللي “ما أقدر” أوصل لهم، لان غالبًا السيرفر اللي يسوي الـ PDF يقدر يوصلهم بما إنهم داخل نفس الشبكة.
جربت السب دومينز واحد واحد، والمفاجأة كانت ٤ منهم اشتغلوا !
لكن كانت تطلع لي صفحة بيضاء.. مافيها شي يذكر 🫠
🔴 الوصول لمواقع داخلية للجهة🔴
فا جت فكرة ببالي طالما اني قدرت اوصل للمواقع فا معناها فعليًا فيه موقع شغال فا ليش ما اجرب اسوي fuzzing بعد الsubdomains
https://t.co/eLFg9Q4aL3
وفعلًا ضبط معاي، وقدرت اوصل للصفحات التالية:
- نظام ال Login الداخلي للموظفين
- صفحة تحتوي على بيانات الاقسام بالعناوين وأرقام الجوال
- Internal API documentation
- Control panel website
طبعًا اقدر اسوي استغلال اكثر، ولكن في حالتي كان اللي وصلت له كافي لأثبات خطورة الثغرة.
وبالنهاية، شكرًا لكم على وقتكم وقراءتكم…
And, we're shipping automatic eager loading in beta. This could eliminate the vast majority of accidental N+1 issues out of the Laravel ecosystem. 🤯
Opt-in, retrieve models, and just spin through their relationships. Laravel will automatically eager load the relationships you access "just in time". 🧙
This piece of code has no N+1 issues. 👀
https://t.co/6fa1aO2QMf