Источник: https://github.com/AnaktaCTF/CTF/blob/main — WEB/XXE_Guide.md

Суть уязвимости

Уязвимость возникает при парсинге XML файлов и позволяет вставлять внешние ресурсы. Если обработка таких сущностей не запрещена, злоумышленники могут манипулировать XML, вставляя вредоносные ссылки

Примеры

<?xml version="1.0"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<user> 
  <name> &xxe; </name>
</user>

Если парсер обработает внешнюю сущность &xxe, он прочитает файл /etc/passwd

Последствия

  1. Утечка конфиденциальной информации
  2. Атаки на внутренние сети
  3. Отказ в обслуживании
  4. Компрометация безопасности

Методы борьбы

  1. Отключение обработки внешних сущностей в XML-парсерах
  2. Использование безопасных библиотек для работы с XML
  3. Проверка и валидация входных данных
  4. Использование менее уязвимых форматов (JSON)

Материалы для изучения:

  1. https://github.com/payloadbox/xxe-injection-payload-list - payload для XXE
  2. https://portswigger.net/web-security/xxe - Тренировачнные лабы и более подробная информация по XXE