To celebrate @spaceraccoonsec's new book launch, I’m giving away a copy of "From Day Zero to Zero Day" (it may be an ebook if I can’t ship).
Comment ZERODAY below, and I’ll DM you the link to enter (Make sure your DMs are enabled so I can message you).
Good luck! #BugBounty
من ثغرة بسيطة في الـ API إلى صلاحيات تتحكم بميزانية بملايين
فحص على الطاير مع @Mohnad@N4waF_Almutairi
نسمي بالله ونبدأ عالخفيف
🔴 Parameter confusion result in full employee account takeover.
طريقة وصولنا لجميع حسابات الموظفين
أثناء فحصنا للموقع، لاحظنا أن كل شيء يعتمد على UUIDs، لذلك كنا مستبعدين وجود ثغرات Access Control.
لكن بعد اكتشافنا لبعض الثغرات، طحنا على مسار يرجّع معلومات لطلبات العملاء من خلال UUID (المستخدم)، مثل ما كنا متوقعين.
خلال الفحص، اكتشفنا خدمة تنشئ طلب، وبعده يتم إنشاء رقم لهذا الطلب.
الريكوست هذا كان مسؤول عن إرجاع بيانات الطلب اللي سويناه.
وقفنا شوي عند الريكوست وقلنا لازم نلقى له تخطي. ليش؟ لأن ال Response فيه UUID الخاص بالمستخدم.
طيب، عمر مافهمت؟ تجيب UUID من خلال UUID؟ وش الفايدة؟
المسار هذا كان يرجع تفاصيل الطلب، لكن كان يحتوي أيضًا على بيانات المستخدم بالكامل، من ضمنها الـUUID.
بعد ما فكرنا شوي في العملية، استوعبنا إنه من غير المنطقي يرجع معلومات بناءً على UUID المستخدم فقط، لأن لو جينا نلغي الطلب، بيستخدم OrderNumber Parameter، وهو عبارة عن رقم بسيط.
فكرة إنه يرجع بيانات الطلب من خلال UUID للمستخدم، بدل UUID خاص بالطلب نفسه، خلتنا نشك في العملية الي قاعد تصيير.
تخيلنا الكود وكيف ممكن يكون شغال في الـBackend، وفكرنا إن العملية ممكن تصير كالتالي:
السيرفر يستقبل UUID.
يشيّك على الطلبات التابعة له.
يترجم الطلب إلى OrderNumber.
يرجّع البيانات.
فقلنا نجرب نحذف ال UUID تمامًا، ونضيف OrderNumber بداله في نفس الريكوست اللي يرجع بيانات المستخدم.
ويوم جربناه…
وفعلًا، قدرنا نتخطى الـUUID، وتسربت معلومات حساسة جدًا، منها UUID.
إلى الآن ما وصلنا للثغرة الأساسية رغم إن البيانات حساسة، لكن كنا مهتمين بالـUUID أكثر لأنه بيفتح لنا أبواب أكبر.
وبعد بحث طويل، لقينا مسار ياخذ UUID لكن لازم يكون خاص بموظف.
وبما إن عندنا ريكوست يسرب UUIDs، سوينا سكربت بسيط يجرب يخمن على ال OrderNumber، ويطلع أي UUID موجود، ثم يرسله على المسار والمسار هذا كان محدود فقط للموظفين لذللك لابد ان يستقبل UUID لأدمن account
/api/GetransactionsInfo/UUID-HERE
ومن خلال الثغرة السابقة والسكربت اللي ضبطناه، قدرنا نستغل الـUUID المسرب بشكل أكبر ونوصل الى UUID خاص بأحد الموظفين.
والبيانات الي كانت ترجع لنا...
مثل ما هو واضح بالصورة، قدرنا نوصل لـJWT.
ومن خلال الـJWT token، قدرنا نوصل لجميع حسابات الموظفين ونتحكم بتفاصيل حساسة ما نقدر نذكرها.
I just Published - A Comprehensive Guide to Manually Hunting SQL Injection in MSSQL, MySQL, Oracle, and NoSQL (MongoDB) - https://t.co/Y6wNFzN9M8
I tried to explain everything I could. Let me know your opinion and suggestions, if any. I will keep updating the article whenever I find time. Thank you!
#BugBounty #SQLinjection #SQLi
Thank you everyone for the +ve feedback, since a lot of you were asking about the scope & bug types
🔭Scope:
Main App(www,target,com)
🐞Bug Types:
- Business Logic Issues
- BAC/IDORS
- CSRF Bypasses
- SSRFs
- XSS
Success or Failure ?🤔
#bugbounty#bugbountytips#cybersecurity
📢 Announcement: BSides Indore CTF Competition Prizes 🏆
We are thrilled to unveil the exciting prizes for the upcoming BSides Indore CTF (Capture the Flag) competition!
Remember -
16th June 2023, 9PM IST https://t.co/rSpiiea21S
#ctf#CyberSecurity#hacking#infosec#prizes