الاستيلاء الكامل على الحساب في إحدى أكبر شركات التجارة الإلكترونية

bug bounty

المقدمة

خلال رحلتي كصيد ثغرات، اكتشفت مؤخرًا ثغرة خطيرة تؤدي إلى الاستيلاء الكامل على الحساب في إحدى أكبر شركات التجارة الإلكترونية. يقدم هذا التقرير تفاصيل حول الخطوات التقنية التي اتبعتها، وتأثير الثغرة، والحل الذي تم تنفيذه.

الثغرة

تم العثور على المشكلة في وظيفة إعادة تعيين كلمة المرور، تحديدًا فيما يتعلق بـ تسمم رابط إعادة تعيين كلمة المرور. فشلت منطقية التطبيق في التحقق من المعلمات الحاسمة، مما سمح للمهاجمين بالتلاعب بعملية إعادة التعيين.

كيفية العمل:

  1. طلب إعادة تعيين كلمة المرور:
    • يبدأ المستخدم في عملية إعادة تعيين كلمة المرور، ويرسل التطبيق بريدًا إلكترونيًا يحتوي على رابط لإعادة التعيين.
  2. الاستغلال:
    • يقوم المهاجم باعتراض رابط إعادة التعيين وتعديل بعض المعلمات.
    • سمح هذا بالوصول غير المصرح به إلى حساب مستخدم آخر دون علمه.

العيب الرئيسي:

عدم وجود تحقق مناسب من جانب الخادم مكّن هذا الهجوم. بمجرد الوصول إلى الرابط المسمم، يمكن السيطرة على حساب الضحية بالكامل.

التفاصيل التقنية

  1. النقطة الضعيفة:

    https://ecommerce.com/reset-password?token=<JWT>&user_id=<USER_ID>
    
  2. خطوات الاستغلال:

    • قام المهاجم بإنشاء رابط إعادة تعيين صالح لحسابه.
    • استبدل user_id بمعرف المستخدم المستهدف مع الحفاظ على token الصالح.
    • عند زيارة الرابط، ربط النظام بشكل غير صحيح عملية إعادة التعيين بحساب الضحية.
  3. النتيجة:

    • تمكن المهاجم من تعيين كلمة مرور جديدة لحساب الضحية، مما أدى إلى الاستيلاء الكامل على الحساب.

التأثير

كشفت هذه الثغرة عن ملايين الحسابات التي يمكن أن تتعرض للاختراق. مع الوصول إلى الحساب، يمكن للمهاجم:

  • عرض التفاصيل الشخصية مثل العناوين وتاريخ الطلبات.
  • إجراء مشتريات غير مصرح بها.
  • استغلال طرق الدفع المحفوظة.

الحل

تم الإبلاغ عن هذه الثغرة من خلال برنامج مكافآت الأخطاء الخاص بالشركة. بعد التقييم، تم حل المشكلة عن طريق تنفيذ فحوصات تحقق صارمة:

  • ربط الرموز المميزة لإعادة التعيين مع مستخدمين محددين في قاعدة البيانات.
  • رفض أي تعارض بين token و user_id.

منحتني الشركة مكافأة سخية واعترفت علنًا بمساهمتي.

الدروس المستفادة

  1. تأمين جميع نقاط الدخول:

    • وظائف إعادة تعيين كلمة المرور هي أهداف عالية القيمة ويجب تصميمها بعناية فائقة.
  2. التحقق من كل شيء:

    • يجب دائمًا التحقق من المدخلات التي يقدمها المستخدم من جانب الخادم لمنع التلاعب.
  3. تأثير مكافآت الأخطاء:

    • الإبلاغ عن مثل هذه القضايا يقوي المنصات ويؤمن المستخدمين في جميع أنحاء العالم.

الخاتمة

أكد اكتشاف هذه الثغرة على أهمية الاهتمام بالتفاصيل و ممارسات البرمجة الآمنة. أنا فخور بمساهمتي في تأمين هذه المنصة الكبيرة.

لا تتردد في التواصل أو متابعتي للحصول على المزيد من الأفكار حول عالم الأمن السيبراني!

الكاتب: m0uka

شارك على الشبكات الاجتماعية