
إثبات مفهوم لاستغلال يوضح إعادة استخدام رمز التفويض OAuth2 في XenForo قبل الإصدار 2.3.13، مما يسمح بإعادة تشغيل الرمز المميز وعائلات متعددة من الرموز المميزة.
XenForo قبل الإصدار 2.3.13 يسمح بإعادة استخدام رمز تفويض OAuth2 أكثر من مرة.
منح رمز التفويض يقوم بتحميل رمز، والتحقق من صلاحيته الزمنية، وإنشاء زوج من الرموز المميزة. المسار الناجح لا يحذف الرمز، ولا يعلّمه كمُستهلَك، ولا يستخدم تحديثًا ذريًا لمرة واحدة. لذلك، فإن إعادة تشغيل نفس التبادل الصالح تنشئ عائلة مستقلة من رموز الوصول/التحديث لنفس المستخدم ونفس النطاقات.
لا يزال المهاجم بحاجة إلى رمز تفويض صالح ومعاملات العميل المطلوبة لذلك المنح. لا تشرح هذه المشكلة كيفية الحصول على الرمز؛ بل تجعل الرمز قابلاً لإعادة الاستخدام بعد أن يكون العميل المقصود قد استهلكه بالفعل.
على XenForo 2.3.12 (build 2031270)، أعاد تبادلان متطابقان رموز وصول مختلفة ونجح كلاهما في المصادقة. يحتوي XenForo 2.3.13 على الإصلاح.
python poc.py https://xenforo.example CLIENT_ID AUTHORIZATION_CODE https://client.example/callback --code-verifier VERIFIER
يُرسل البرنامج النصي نفس المنح مرتين، ويقوم بتجزئة الرموز المميزة التي تم إرجاعها، ويُبلغ عما إذا كان كلاهما يعمل. لا يطبع بيانات الاعتماد أو هوية الحساب. قم بتشغيله فقط باستخدام منح قابل للاستهلاك على تثبيت اختبار مصرح به.
اكتُشفت بواسطة Marco Paciaroni (BomboBombone).