High School Student | CYS Researcher | @TuwaiqAcademy Student | Founder & CEO of @NewBuad | AI & Ethical Hacking | #eWPT#eWPTX#WEBRTA | Preparing For #eCPPTv3
@FdlShms95309 بالنسبة للانجليزي راح تتطور مع الوقت بإذن الله وعندك دورات ومعس��رات بالعربي تقدر تبدأ فيها... وبالنسبة لصعوبة المجال يعتمد عليك غالبا ولكن مافي شي صعب اذا كان عندك شغف له 👌🏻
🛑 كيف حولت ميزة “بحث بسيط” إلى Blind IDOR يكشف معلومات حساسة لأكثر من 20 الف مستخدم خلال دقيقتين بس !🛑
السلام عليكم,
قد سمعت بثغرة اسمها Blind IDOR؟ غريبة صح؟
اليوم بتكلم بإذن الله عن ثغرة صا��فتها في واحدة من أكبر الشركات
ثغرة بدأت كميزة عادية جدًا… ما فيها أي مؤشر يوحي بأنها خطيرة أو حتى يستاهل تفحصها, ومع التجربة والتعمق تحولت إلى واحدة من أغرب وأقوى الثغرات اللي مرت علي في المجال.
جهز قهوتك وخلنا نبدأ…
———————————
في البداية زي اي يوم كنت أفحص التارقت الرئيسي:
https://t.co/bTRhINvqIw
الموقع كبير نوعًا ما، فيه ميزات كثيرة، صفحات كثيرة، وفنكشنز كثيرة…
وناوي أفحصه كامل، فجلست فترة طويلة يوميًا تقريبًا افحص كل شي وفي كل حته
أمشي صفحة صفحة، فنكشن فنكشن، وأجرب كل شي ممكن.. ومو ممكن :)
ومع كثرة المحاولات… ما كان فيه أي شيء فعلي ممكن يستغل
حتى الـ fuzzing ما طلع لي بشي مفيد
لكن وقت Recon لفت نظري نقطة مهم�� جدًا.
المنصة كلها تعتمد على API واحد
لاحظت إن كل التفاعل الحقيقي يصير على Subdomain واحد فقط: https://t.co/NgpDQTQx8J
ومهما كان إيش تسوي على الواجهة… كل شيء يتنفذ من هنا.
فقلت خلاص… هذا اللي بركز عليه في الفحص الكامل..
بدأت أسوي عليه fuzzing موسّع، والنتائج كانت واضحة:
200 → endpoint شغال
404 → مو موجود
403 → موجود لكن ما عندك الصلاحيات المناسبة
ومثل ما كنت متوقع …
أغلب ال endpoints الحساسة كانت 403.
جربت bypass بأساليب كثيرة:
تغييرات في الهيدرز
Capital/Small
Encoding و Double Encoding
ولا وحدة اشتغلت للاسف
وهنا تاكدت إن المشكلة مو WAF المشكلة "صلاحيات".
—————————
- اختلاف الصلاحيات بين الحسا��ات -
المنصة فيها نوعين رئيسية من الحسابات:
- حساب أفراد
- حساب شركات
قلت خلني أشوف هل فعلاً فيه فرق؟
سويت حساب شركة… أخذ�� الـ token… ورجعت أطقطق شوي على ال endpoints اللي كانت 403
وفعلاً…
كم endpoint مهم فتح معي على طول🫣!
وهنا بدأت تتضح الصورة:
اختلاف الـ roles هو المفتاح ( وهو شي منطقي وبديهي ).
—————————
- البداية الفعلية للثغرة : الـ Search Endpoint -
من ضمن ال endpoints اللي شفتها:
/api/v2/all-users/search
الرد يرجع لك قائمة مستخدمين، لكن بمعلومات بسيطة جدًا زي الاسم, اليوزر, الاي دي
وبشكل عام… مافي شيء يحمّس
لكن بما إني تعودت أفحص كل شيء، قلت خلني أسوي parameter fuzzing عليه
وهنا بدأت تتغير الأمور…
—————————
- فحص الباراميترات -
بدأت أفحص الباراميترات وطلعت لي باراميترات كثيرة:
page
length
sort
search
username
… وغيرها
جربت رقم الصفحة، الطول، الترتيب… كلهم عاديين وما فيهم شيء.
لكن باراميتر واحد كان مختلف وهو "search"
قلت خلني أجرب قيم كثيرة عليه:
username → طلع الحساب
display name → طلع الحساب
بعدها قلت أجرب شيء المفترض ما يشيك عليه …
كتبت أول جز�� من إيميلي الحقيقي: sultansdp
واللي صار؟
رجّع لي حسابي في الرد!!
مع إن هذا الجزء من الإيميل ما يظهر أبدًا للمستخدم، ولا لأي أحد.
وقتها استوعبت إن الـ search ما يبحث فقط في البيانات الظاهرة…
لكن يبحث بعد في بيانات أعمق داخل الباك اند وتحديدا الـ Model نفسه.
وهنا عدلت الجلسة لانها دليل ان فيه شيء مو طبيعي بالبحث👀
—————————
- الربط بين البحث وتحديث الحساب -
وقت الفحص لاحظت إن صفحة update profile ترجع نفس الـ JSON structure اللي شفته في search endpoint:
نفس الحقول
نفس البنية
نفس الأسماء
وهذا معناه إن الباكند يستخدم نفس الـ Model للتحديث والبحث.
حلو.. طيب وش نستنتج ؟
نستنتج سلمك الله ان البحث يقدر يشوف بيانات المفترض ما يشوفها ولا يبحث فيها حتى
لكن بقى عندنا مشكلة:
ما تقدر تخمّن بيانات حساسة مباشرة، خصوصًا الإيميل أو رقم الجوال والسبب لانك ما تعرف طوله ولا بدايته ولا مزود ال��دمة.
ومبدئيا الـ WAF بيتفاهم معك لو كثّرت طلبات😂
هنا يبدأ تفكيرك كـ Hunter 🔥
—————————
- اكتشاف دعم الـ Regex داخل البحث -
وأنا اتفحص ملفات الـ JS واحللها لاحظت إن البحث يستخدم Regex بشكل داخلي فقلت خلني أجرب:
sultan → يطلع
sul an → ما يطلع
sul_an → طلع!
وهنا الزبدة كلها..
علامة _ اشتغلت كـ wildcard لحرف واحد, طيب وش بنستفيد كذا يا سلطان ؟
باختصار صار أقدر أخمن الإيميل حرف حرف بطريقة شرطية “نعم/لا”
نفس فكرة Blind SQL Injection
لكن على API.
—————————
- استغلال الثغرة -
كيف صار الاستغلال؟
الآلية كانت كذا:
1- أحدد username ثابت للمستخدم عن طريق باراميتر username
2- أستخدم Regex في search :
- إذا طلع الحساب → التخمين صحيح
- إذا اختفى → التخمين غلط
وبكذا صار البحث عبارة عن oracle يعطيني إجابة “صح” أو “غلط” حسب المعلومات.
وبدأت أستخرج الإيميل كذا:
أبدأ بتحديد مزود الخدمة:
@gmail.com، @anything.com …
بعدها أحدد عدد الحروف:
[email protected][email protected][email protected]
بعدها أبدأ أخمن كل حرف:
[email protected][email protected]
…
إلى ان يكتمل الإيميل بالكامل.
نفس الشي على رقم الجوال، العنوان، إلخ.
—————————
- الأتمتة -
دائما في الثغرات المعقدة مثل هذي الافضل انك تسوي سكريبت يوضح للترياق ويختصر عليه الثغرة ك PoC اضافي
فكتبت سكربت Python بسيط يأتمت العملية كاملة
أحط اليوزر → وبعد دقيقة إلى دقيقتين يطلع لي كل بياناته:
- الإيميل
- رقم الجوال
- العنوان
وأي معلومة مرتبطة بالمستخدم بدون ما تظهر لي أصلًا في الرد .
وهذا ما يخليها IDOR عادي…
هذي Blind IDOR بخطورة عالية جدًا 🚨
—————————
- توضيح للـ Backend -
هذا كود محاكي للي صار في الباك اند:
في الكود هذا، استخدمت نفس فكرة الـ Blind IDOR من الباك اند. الـ API يعتمد على البحث بـ Regex لتخمين بيانات زي الإيميل واليوزر نيم. الـ Wildcard (علامة _ ) هنا تتيح لي أخمن حرف بحرف، عشان أستخرج بيانات مخفية زي ما حصل بالضبط في الثغرة.
—————————
- الخلاصة -
الفحص بدأ بشكل اعتيادي جدًا، لكن مع فهم بعض التفاصيل وربط السلوك بين الـ endpoints اتضحلي إن ميزة البحث ترتبط مباشرة بنموذج بيانات الحساب، وهذا أدى لفتح باب استعلام غير مقصود يسمح باستخراج معلومات حساسة عن طريق Blind IDOR.
تم الابلاغ عن الثغرة وتم إصلاحها بشكل كامل الحمدلله
أهم نقطة هنا:
أغلب الثغرات ما تجي من خطوة واضحة، لكن من ملاحظات صغيرة ولما تربطها مع بعض تكتشف آلية كاملة ما كانت في بالك 🧠
—————————
سويت لكم تحدي بسيط لمحاكاة ثغرة Blind IDOR باستخدام Flask. التحدي يركز على كيفية استغلال API بطريقة تستخدم الـ Regex و Wildcard لاستخراج بيانات حساسة
الهدف انك تطلع الفلاق 🚩
الفلاق :
Flag{......................................}
رابط التحدي :
http://172.237.155.131:5000/
خلونا نشوف First blood 🩸👀
شكرًا لقراءتكم… وموعدنا مع رايت اب قادم بإذن الله 🫡
@FdlShms95309 يعتمد على هدفك وصبرك في التعلم وايضا الموضوع مو صعب لو عندك شغف، هو مربح حاليا لكن فيه تخصصات غير مختبر الاختراق مطلوبة في سوق العمل بشكل اكبر ولها مستقبل وهذا ما يمنع انك تتعلمها كلها لان فيها افكار مترابطة 🙌����
بفضل الله انتهينا من تقديم آخر يوم في معسكر CTF 👏🏻
تطرقنا لأساسيات مهمة في الـCTF من الشبكات إلى الويب وبعض أساليب الاختراق، وكانت تجربة اكثر من رائعة.
ونفخر بتجاوز عدد المسجلين 1300+ طالب 🫡
الشكر مو��ول لإدارة وأعضاء @CGClub_sa
وللأستاذ @jn_rh5 على جهودهم في إنجاح المبادرة 🤍
سعيدة بإتمام معسكر CTF مع نادي @CGClub_sa (22–26 فبراير 2026).
تجربة ممتعة طُبّقت فيها مفاهيم الأمن السيبراني عمليًا وحللت ثغرات مثل SQLi و XSS.
شكر خاص للأستاذ سلطان @SF7Dev وللنادي على التنظيم الرائع.
متحمسة لمزيد من التعلم في المجال التقني! 🚀
الحمدلله على التمام،
كل الشكر للأستاذ القدير @SF7Dev على ما قدمه من جهود خلال المعسكر الممتع جداً والمثري
كما احب ان اشكر نادي @CGClub_sa على إتاحة هذه الفرصة المميزه.
بفضل الله انتهينا من تقديم آخر يوم في معسكر CTF 👏🏻
تطرقنا لأساسيات مهمة في الـCTF من الشبكات إلى الويب وبعض أساليب الاختراق، وكانت تجربة اكثر من رائعة.
ونفخر بتجاوز عدد المسجلين 1300+ طالب 🫡
الشكر موصول لإدارة وأعضاء @CGClub_sa
وللأستاذ @jn_rh5 على جهودهم في إنجاح المبادرة 🤍
- 📍الموقع : اونلاينZoom
- ⏳الوقت: 10:00م-12:00ص
- المده: 5 ايام
- هل المحاضرات مسجله : نعم مسجله وتقدر ترجع لها في اي وقت
- هل المعسكر تاسيسي: نعم
- كيف راح يتم ارسال القبول: على الايميل وراح يكون في رابط انضمام للمجموعه لارسال المحاضرات
-شروط الحصول على الشهاده : اتمام80٪ من المعسكر🚨
-هل تسجيل الحضور يومي؟: نعم يوخذ بشكل يومي⭐️
-كيف نتاكد من فهمك للدرس؟: يكون في نهايه كل يوم اسئله لتثبيت فهمك 📈💪🏻
-كيف اسجل؟: عن طريق الفورم فقط
https://t.co/iNm2qbIjZN
-كم في طريقه "لتسديد الرسوم؟":يوجد طريقتين سلة+تحويل
https://t.co/nCXvddbfY4
#CyberGuard #الامن_السيبراني #CyberSecurity
Introducing Claude Code Security, now in limited research preview.
It scans codebases for vulnerabilities and suggests targeted software patches for human review, allowing teams to find and fix issues that traditional tools often miss.
Learn more: https://t.co/n4SZ9EIklG
3 Bugs = +7K SAR
مساكم الله بالخير جميعا, بتكلم اليوم عن 3 ثغرات قدرت اكشتفها في احد البرامج
1. Unauthenticated Access to Admin Dashboard Leads to Exposure of +16k Customers Chatbot Messages
بداية الفحص لاحظت ان الدومين كان كبير جدا وبعد التدقيق اكثر اكتشفت انه Backend لأكثر من Product
واللي جذبني اكثر هو app بأسم chatbot-admin طيب هل يمديني ادخل بشكل طبيعي ؟
حاولت ادخل للURL بشكل طبيعي
https://www.REDACTED[.]com/chatbot-admin
راح يسوي Redirect لصفحة Oauth لكن شفت شيء غريب في الBurp History
الReq كان يعطيني JWT Token, طيب ايش تقصد يا راكان ؟ الbackend يعطيني access طبيعي لانه يعتمد بشكل كامل على الOauth. طيب لو ما ارسل الreq الخاص بالOauth وش راح يصير ؟ فعلا هذا اللي جربته
لو نلاحظ الrequest الاول هو الOauth والreq الثاني يخص الapp نفسه, طيب خلينا نوقف الاول ونرسل الثاني. بالفعل قدرت اوصل للAdmin Panel !
🚩🔥 معسكر CTF | البداية الحقيقية في عالم الأمن السيبراني 🔐
ضمن فعاليات نادي Cyberguard الرمضانية، نعلن عن أول معسكر تدريبي بعنوان CTF، المصمم ليأخذك خطوة بخطوة إلى عالم التحديات السيبرانية بطريقة عملية وتفاعلية.
📅 من الأحد 22 فبراير إلى الخميس 26 فبراير
⏰ من 10:00 مساءً إلى 12:00 صباحًا
💻 عن بُعد (أونلاين)
🎟️ مجاني بالكامل + شهادة حضور
خلال المعسكر ستتعلم:
✨ أساسيات مسابقات CTF وكيف تبدأ فيها
🐧 التعامل مع Linux والأوامر الأساسية
🌐 أساسيات الويب وثغرات XSS و SQLi
🔐 مبادئ التشفير (Cryptography)
🌍 أساسيات الشبكات واستخدام Wireshark
🛡️ مدخل إلى أمن الويب والتطبيقات
👨🏫 يقدم المعسكر: سلطان فقيهي – مختص في الأمن السيبراني واختبار الاختراق بخبرة عملية واسعة.
إذا كنت تبحث عن نقطة بداية قوية في الأمن السيبراني، فهذا المعسكر هو فرصتك لتجربة التعلم الحقيقي والتطبيق العملي 🚀
🎯 احجز مقعدك الآن وابدأ التحدي!
https://t.co/BEdSYRp9Gy