XXE (внешние сущности XML)
Обработка XML с внешними сущностями позволяет читать файлы сервера и выполнять SSRF.
Сигнатура
XML External EntityXXE возникает, когда XML-парсер обрабатывает внешние сущности. Через объявление DOCTYPE со ссылкой на файл или URL атакующий читает локальные файлы сервера или инициирует запросы во внутреннюю сеть.
Как защититься: отключайте обработку внешних сущностей и DOCTYPE в парсере, используйте безопасные библиотеки (например defusedxml в Python), предпочитайте JSON, где это возможно.
# Опасно: стандартный парсер с включёнными сущностями
# import xml.etree.ElementTree as ET
# ET.fromstring(untrusted_xml)
# Безопасно: defusedxml блокирует внешние сущности
import defusedxml.ElementTree as ET
tree = ET.fromstring(untrusted_xml)