Источник: 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
Последствия
- Утечка конфиденциальной информации
- Атаки на внутренние сети
- Отказ в обслуживании
- Компрометация безопасности
Методы борьбы
- Отключение обработки внешних сущностей в XML-парсерах
- Использование безопасных библиотек для работы с XML
- Проверка и валидация входных данных
- Использование менее уязвимых форматов (JSON)
Материалы для изучения:
- https://github.com/payloadbox/xxe-injection-payload-list - payload для XXE
- https://portswigger.net/web-security/xxe - Тренировачнные лабы и более подробная информация по XXE