
إثبات المفهوم لـ CVE-2023-22432 (web2py)
تم الكشف عن ثغرة أمنية (CVE-2023-22432) في web2py في 31 يناير 2023 (بالتوقيت الأمريكي). تصف هذه المقالة مناقشتنا لهذه الثغرة ونتائج التحقق منها.
هذه الثغرة هي ثغرة إعادة توجيه مفتوحة (open redirect) في web2py تسمح بتحديد عنوان URL تعسفي كـ URL لوجهة رد الاتصال في عنوان URL لصفحة الإدارة. تم تنفيذ إجراءات وقائية ضد إعادة التوجيه المفتوحة مبدئيًا، ولكن يتم إعادة إنتاج هذه الثغرة من خلال تطبيق طريقة تجاوز خاصة على عنوان URL. قد يؤدي ذلك إلى توجيهك إلى مواقع ضارة.
تم اكتشاف ثغرة إعادة توجيه مفتوحة (CVE-2022-33146) في web2py في عام 2022، وتساءلنا عما إذا كانت هناك ثغرات أخرى مشابهة لـ CVE-2022-33146، لذا قمنا بفحص كود مصدر web2py، ووجدنا طريقة لتجاوز منع إعادة التوجيه المفتوحة. قام Takuto Yoshikai (المؤلف) من Aeye Security Lab بالإبلاغ عن ذلك إلى IPA وفريق تطوير web2py.
شغّل build.sh في هذا المستودع. ثم سيبدأ web2py.
bash build.sh
الوصول إلى http://localhost:8000/admin/default/index/?send=//example.com
أدخل كلمة المرور "password123"، وانقر على تسجيل الدخول.
لم يعيد التوجيه إلى example.com، لذا عملت الوقاية من إعادة التوجيه المفتوحة بشكل جيد.
الوصول إلى http://localhost:8000/admin/default/index/?send=\/\/example.com
الحمولة هي \/\/example.com.
أدخل كلمة المرور "password123"، وانقر على تسجيل الدخول.
أعاد التوجيه إلى example.com، لذا لم تعمل الوقاية من إعادة التوجيه المفتوحة بشكل صحيح.
بعد المراجعة والتحقق، أكدنا أنه من الممكن توجيه المسؤول إلى موقع ويب ضار عن طريق صياغة عنوان URL لصفحة الإدارة. نوصي بتحديث النظام في أقرب وقت ممكن.