Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2017-9822 — تحليل فني متعمق وإثبات المفهوم لـ CVE-2017-9822، وهي ثغرة إلغاء تسلسل غير آمن في DotNetNuke تؤدي إلى تنفيذ التعليمات البرمجية عن بُعد عبر ملفات تعريف ارتباط مصممة. | Kitploit
أدوات/GitHubGitHub/tnot123/cve-2017-9822
تحليل الثغرات الأمنيةتحليل الكودالاستغلالالهندسة العكسيةاستغلال تطبيقات الويبمصممي الأخطاءاختبار الاختراقالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائيةمختبرات وتدريب عملي
83منذ سنة واحدةلم تتم المراجعة بعد
GitHub
tnot123/cve-2017-9822

cve-2017-9822

تحليل فني متعمق وإثبات المفهوم لـ CVE-2017-9822، وهي ثغرة إلغاء تسلسل غير آمن في DotNetNuke تؤدي إلى تنفيذ التعليمات البرمجية عن بُعد عبر ملفات تعريف ارتباط مصممة.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
  • CVE-2017-9822
    • المعلومات الأساسية
    • إعداد البيئة
    • إعداد التصحيح
    • التحليل
    • التصحيح
      • XmlSerializer
      • أداة الهجوم
      • ObjectDataProvider
      • ResourceDictionary
      • من إلغاء التسلسل غير الآمن لـ XML إلى RCE

CVE-2017-9822

DNN (المعروف أيضًا باسم DotNetNuke) قبل الإصدار 9.1.1 لديه القدرة على تنفيذ التعليمات البرمجية عن بُعد عبر ملفات تعريف الارتباط، والمعروف أيضًا باسم "2017-08 (مهم) إمكانية تنفيذ تعليمات برمجية عن بُعد على مواقع DNN".

المعلومات الأساسية

  • المنتج المتأثر: DotNetNuke (DNN Platform) – نظام إدارة محتوى/بوابة .NET شائع.
  • تاريخ الإعلان: يوليو 2017.
  • المستوى: حرج (CVSS ~9.8).
  • نوع الثغرة: كيان خارجي XML (XXE) / إلغاء تسلسل غير آمن → تنفيذ تعليمات برمجية عن بُعد (RCE).
  • التأثير: قبل الإصدار 9.1.1 القدرة على تنفيذ التعليمات البرمجية عن بُعد عبر ملفات تعريف الارتباط

alt

ما هو DotNetNuke؟ DotNetNuke هو نظام إدارة محتوى ويب مجاني ومفتوح المصدر مكتوب بلغة C# ويعتمد على منصة .NET. DotNetNuke شائع جدًا ويستخدم على نطاق واسع على الإنترنت لأنه يمكنك نشر إصدار ويب من DNN في دقائق دون الحاجة إلى الكثير من المعرفة التقنية. وظيفة مهمة أخرى لـ DotNetNuke هي القدرة على إنشاء أو استيراد وحدات مخصصة من طرف ثالث مبنية باستخدام VB.NET أو C#. يمكن تثبيت DNN على مجموعة تتضمن Windows Server وIIS وASP.NET وSQL Server لنظام Windows. كما يدعم DNN التحقق من التسجيل للمستخدمين الجدد عبر البريد الإلكتروني، ولكنك تحتاج إلى تكوين خادم SMTP صالح لكي تعمل هذه الميزة الأمنية. الميزات الرئيسية لـ DNN • الهندسة المعيارية: يسمح DNN بالتوسع بسهولة عن طريق تثبيت وحدات إضافية (وحدات وظيفية) مطورة من قبل المجتمع. يمكن للمسؤولين تحميل وحدة جديدة عبر واجهة الإدارة (رفع حزمة .zip) أو فك الضغط مباشرة في مجلد على الخادم. • إدارة المستخدمين: يوفر النظام وظائف أمان وتفويض مفصلة (أدوار/صلاحيات) للبوابات والوحدات. تتم إدارة حسابات المستخدمين والأدوار والصلاحيات بشكل مركزي في DNN. • إدارة المحتوى: يدعم محرر WYSIWYG، وإدارة المقالات والصور والمستندات... يوجد نظام سير عمل/نشر (نشر المقالات وفق عملية مراجعة) وتحديد إصدارات المحتوى. يتم تخزين المحتوى في قاعدة بيانات مشتركة (SQL Server). • API والتكامل القابل للتوسع: يوفر DNN API .NET للمطورين لتطوير وحدات مخصصة (WebForms، MVC، Razor) ودمج الخدمات الخارجية. تتوفر مجموعة واسعة من المكتبات الخارجية (قوالب الواجهة، وحدات التجارة الإلكترونية، المنتديات، إلخ) لتوسيع الوظائف. • الواجهة والقوالب: نظام القوالب (الجلود) يفصل المحتوى عن الواجهة مما يسمح بتصميم ويب مرن. يمكن لمواقع الويب التي تم إنشاؤها بواسطة DNN تغيير الواجهة عن طريق تغيير القوالب. • آلية تثبيت الوحدات: يتم تغليف وحدات DNN في ملفات ZIP، ويمكن تثبيتها عبر واجهة الإدارة أو عن طريق فك الضغط يدويًا. يدعم DNN كلاً من الوحدات المترجمة (.NET DLL) ووحدات Razor الديناميكية؛ يمكن منح أو إلغاء الوصول لأي وحدة من خلال إعدادات التفويض على كل صفحة.

إعداد البيئة

أنظمة التشغيل: Windows 10 .NET Framework: 4.5.1+ خادم الويب: Microsoft IIS 10 خادم قاعدة البيانات: Microsoft® SQL Server® 2019 Express، SQL Server Management Studio إصدار Dotnetnuke 9.1.0 يمكن استخدام Google dorks التالية للعثور على إصدارات Dotnetnuke المنتشرة على الإنترنت واختبارها بناءً على الموقع: inurl:dnn.js inurl:dnn.modalpopup.js inurl:dnn.servicesframework.js inurl:dnn.xml.js inurl:dnncore.js inurl:/Portals/0/ inurl:/DesktopModules/ inurl:/DNNCorp/ inurl:/DotNetNuke inurl:/tabid//Default.aspx inurl:/tabid//language/*/Default.aspx intext:"by DNN Corp " يمكن اتباع هذا المقال لبناء البيئة

إعداد التصحيح

قم بتعديل خصائص التجميع إلى خصائص "قابلة للتصحيح"، وهذا ضروري جدًا لأنه في وقت التشغيل، سيتم تطبيق بعض التحسينات التي قد تعيق عملية التصحيح، وقد لا يتم الوصول إلى بعض نقاط التوقف أو قد لا تكون بعض المتغيرات موجودة. قم بتحميل DotNetNuke.dll إلى dnSpy (32 بت) ثم اختر Edit Assembly Attributes (C#)

alt

قم بتغيير السطر من [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] إلى [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]

alt

ثم اختر Compile واحفظ هذه الوحدة في مكانها الأصلي. بعد ذلك، قم بتشغيل dnSpy بصلاحيات المسؤول واختر Debug -> Attach to Process

alt

اختر العملية w3wp.exe

alt

سبب إرفاق هذه العملية هو أن تطبيقات الويب على IIS تستخدم عادةً عمليات العامل. وهي مسؤولة عن معالجة طلبات الويب المرسلة إلى خادم IIS لكل مجموعة تطبيقات، وقد تكون هناك عدة عمليات عامل على جهاز واحد وكلها تحمل نفس الاسم w3wp.exe. ملاحظة صغيرة: قد لا تكون هناك عملية w3wp قيد التشغيل في بعض الأوقات، حيث لن يبدأ IIS عمليات العامل حتى يستقبل أول طلب ويب.

alt

بالعودة إلى التصحيح، بعد إرفاق العملية، اختر: Debug -> Windows -> Modules

alt

انقر على وحدة واختر Open All Modules

alt

في هذه المرحلة، في نافذة Assembly يمكننا رؤية جميع الوحدات ذات الصلة

alt

التحليل

إلغاء التسلسل هو عملية تفسير تدفقات البايت وتحويلها إلى بيانات يمكن للتطبيق تنفيذها. المشكلة الرئيسية في إلغاء التسلسل هي أنه في معظم الأوقات يمكنه استخدام بيانات إدخال المستخدم. وهذا يعني أنه يمكنك إدراج حمولات ضارة في التنسيق المطلوب للتطبيق ويمكن التلاعب بالمنطق، أو الكشف عن البيانات، أو حتى تنفيذ التعليمات البرمجية عن بُعد. يستخدم DotNetNuke ملف تعريف الارتباط DNNPersonalization لتخزين خيارات التخصيص للمستخدمين المجهولين (يتم تخزين خيارات المستخدمين الموثقين عبر صفحة ملفهم الشخصي). وفقًا للتقرير، تحدث الثغرة في معالجة ملف تعريف الارتباط DNNPersonalization، حيث يُستخدم هذا الملف لتحميل ملف المستخدم الشخصي ولكن لا يزال من الممكن تشغيله دون مصادقة عند الوصول إلى صفحة غير موجودة (خطأ 404). نقطة الدخول لهذه الثغرة تقع في دالة LoadProfile التابعة لوحدة DotNetNuke.dll، سنقوم بفك ترجمة هذه الوحدة باستخدام dnSpy وتحليلها بالتفصيل: في PersonalizationController#LoadProfile(int, int)

alt

إذا كان userId مختلفًا عن null، فسيتم تعيين قيمة المتغير text إلى قيمة ملف تعريف الارتباط DNNPersonalization من الطلب ثم يتم استدعاء Globals#DeserializeHashTableXml

alt

Globals#DeserializeHashTableXml يستدعي XmlUtils#DeSerializeHashtable

alt

تنزيل الأداة