يجب ألا تقف بانتظار حدوث الأشياء.. يجب ان تطور مهاراتك و أن تستمر في رحلة التطوير حتى تكون جاهزاً للفرص حين تأتي ✨
- صاحب السمو الملكي الأمير عبدالعزيز بن سلمان
وزير الطاقة
يسعدنا الإعلان عن مشاركتنا في #Blackhat25 واستعراض منصّة #كاتشفاي الأمنية لنستعرض حلول الأمن السيبراني المصممة من نُخبة الباحثين السعوديين.
We’re excited to join #BlackHat25 and showcase #Catchify’s advanced security platform, to showcase offensive security solutions crafted by elite Saudi security researchers.
📅 2–4 December
📍 Riyadh, Malham – Hall 2, Booth P28
Stay tuned for more.
#Cybersecurity #BlackHatRiyadh2025
سويت لكم
منصة تعليمية شاملة تحتوي على 500 سيناريو حقيقي لاكتشاف الثغرات الأمنية. تعلم من خلال أمثلة عملية واحصل على شارات الإنجاز
ما سوينا شي لسه
في حال في اي مشكله تواصلو معي تحت التغريده
Awarded $25,000 (max bounty) by Ubiquiti for a Remote Code Execution (RCE) in UniFi Access Application via @Hacker0x01.
CVE: CVE-2025-52665 (assigned).
Patch is live → https://t.co/sQLONqUvV8
Huge thanks to the Ubiquiti security team.
Full research will be published by the Catchify team.
⚠️ Update your systems now.
الحمد لله
تم منحي أعلى مكافأة 25,000$ من Ubiquiti نظير ثغرة RCE في UniFi Access Application عبر @Hacker0x01.
رقم الثغرة (CVE): CVE-2025-52665.
البحث التفصيلي سينشره فريق Catchify قريبا.
⚠️ حدثوا أنظمتكم في نظام UniFi Access.
#InfoSec
الحمدلله على أعظم إنجاز .. تشرف فريق فالكونز بتكريم سمو ولي العهد الأمير محمد بن سلمان بعد تحقيق كأس العالم للمرة الثانية على التوالي 💚🏆
#FalconsAreHere - #EWC2025
🔴كيف قدرت اتحكم بسيرفر لأحد الجهات الحساسة بشكل كامل واكتشف اكثر من 15 ثغرة حرجة.
a Single LFI to +15 Critical Bugs A Web-Boundary Pivoting Story
مسيتم بالخير, رجعا لكم بمقالة جديد بعد انقطاع, لكن على ماقال من طول الغيبات جاب الغنايم
اليوم باذن الله بتكلم عن طريقة اكتشافي لثغرة من خلاله اكتشفت +15 ثغرة حرجة اخرى في احد الجهات الحساسة.
# البداية
أثناء الفحص لاحظت إن الموقع مبني بـ Angular، وهذا يعني إن ملفات الـ JS راح تكون كنز لفهم طبيعة الموقع.
أول يوم فحص ما حصلت نتيجة مباشرة، لكن طلعت بأهم شيء والي هو صرت فاهم التارقت أكثر.
بالتكملة, بما إن فيه عدة Roles بالموقع، وكمستخدم عادي ما كان عندي إلا كم Functions ظاهر لي كمستخدم عادي، قررت أركز تحليلي بالكامل على ملفات الـ JS.
وهنا جاء وقت اتكلم عن ال runtime.js، والي هو عبارة عن ملف JavaScript موجود بالمواقع اللي تستخدم Frameworks مثل Angular.
وفكرته بكل اختصار إنه يعرف ملفات JS الأخرى ويستعملها وقت الحاجة، ويطلق على هذي الملفات بال chunks
وهذي كلها عباره عن JS files
بنيت سكربت يسوي Load للـ JS files المعرفة بالـ runtime، بشكل مباشر وقدرت أجمع أكثر من 35 ملف وبدأت أحللهم واحد واحد.
ومالكم بالطويلة, في أحد الملفات لقيت Function معرفة preview-attachment، وظيفتها عرض المرفقات أو الصور
من خلال تحليلي الى الـ JS لاحظت إنها تستعمل معرفين في Functions مختلفة لعرض الصور:
- filePath
- fileName
في بعض الـ Functions الأخرى بالموقع كان يتم استخدام fileName فقط، لكنه مقيّد بمسار معين ومعه Validation على ال Input ويعرض الصور من مسار ثابت مباشرة من الـ server-side.
وش تبي وصله ياعمر؟ يعني فكرة انه اوصل الى ملفات اخرى غير الصور فكرة غير ممكنة بأستعمال ال fileName parameter
لكن ماذا عن ال filePath؟ إذا أضفته في نفس الـ Request، راح يسوي overwrite على قيمة ال fileName، لأن الـ server-side يفضل filePath على fileName.
ونقطة مهمة ما أقدر أحذف fileName لأنه Mandatory Parameter لازم يكون موجود بالـ Request.
وفي ال filePath Parameter كنت قادر اني احدد المسار الي يسوي له preview او عرض للصورة.
لكن السؤال هل المسار مقتصر على عرض الصور فقط ؟
الجواب لا (; مثل مانلاحظ بالطريقة هذي قدرت اسوي read /etc%0a/%0apasswd
مافيه impact ؟ بس هنا وصلنا لل ssh private key
الأغلب ممكن يوقف هنا ويرفع تقريره
لكن دامك بق هنتر بتحاول تصنع ثغره من اي شيء واحيانا مايضر انك تستكشف شوي (;
# Accessing Private SSH Keys to RCE
بعد ماجبت ال SSH keys سويت connect على نفس IP السيرفر الي شغال عليه الموقع وقدرت اني اوصل الى السيرفر بشكل كامل
الأغلب هنا بيرفع التقرير ويوقف, بس عمرك سمعت عن ال مصطلح ال pivoting؟ لا ماقصد ال pivoting بنطاق ال network
بل pivoting بنطاق ال web applications, بعد وصولي للسيرفر
اول خطوة سويته اني اشوف ال source code واكتشفت بعض الثغرات من خلال تحليلي الى ال source code
ومن ضمنه Account take over على اي حساب مسجل بالجهة بشكل كامل , والي كانت من خلال ال reset password function
# From Source Code Review to 0-Click ATO & 15+ Critical Bugs Uncovered
لاحظت انه يتم انشاء token في حال انك تبي تسوي reset password لكن التوكن كان يتم انشائه بالطريقة هذي
الي قاعد يصير بكل اختصار ياخذ الهوية والوقت الحالي (timestamp) ويسوي له hashing باستعمال SHA1
وبما ان ال SHA-1 مافيها اي secret key, salting ابدا
معناته انه من الممكن نجيب اي reset token
فسويت سكربت بكل سهولة يستغل العملية هذي, وقدرت اني اتحكم بأي حساب مسجل بالجهة من خلال رقم الهوية فقط.
حلو وموضوع ال pivoting عمر ؟ هنا ارجع لكم بال pivoting بس على نطاق ال web application, الجهة نفسة كان عنده عدة مواقع اخرى
فجربت اني شوف نفس المفهوم للمواقع الثانية التابعة للجهة, وفعلاً نفس المنطق مستخدم، فاستغليتهم بنفس الطريقة.
ومن خلال الـ source code review قدرت اكتشف ثغرات عديدة اخرى كذلك
من خلال ال pivoting كنت قادر اكتشف فوق ال 15+ ثغره حرجة ومرتفعة الخطورة, وممكن تكون بجزء ثاني
بالختام، أتمنى كان شرحي واضح واستفدتوا، وشكرًا على وقتكم وقراءتكم.
يسرنا الإعلان عن إطلاق أول ورشة عمل في Catchify Academy بعنوان:
Tips & Tricks for Penetration Testers
📍 الرياض – مركز ريادة الأعمال
📅 17-19 أغسطس | ⏰ 5:30 – 7:30 م
يقدمها نخبة من خبراء الأمن السيبراني:
أ. عمر الزغيبي – أ. ناصر البراك
رابط التسجيل:
https://t.co/PMHso1hQIS