📘 О чем эта работа
Отчёт описывает две практические задачи по веб‑безопасности: получение флага на удалённом сервисе через манипуляции с HTTP‑заголовками и эксплуатацию Server‑Side Template Injection (SSTI) на сервере с Jinja2. Объект исследования — удалённые веб‑приложения, предмет — методы обхода проверок и исполнение произвольных команд на сервере.
📚 Что внутри
Работа содержит поэтапные описания действий и конкретные примеры команд, которые приводят к успешному получению флагов:
- Задача 'фаззинг' заголовков: шаги по анализу ответов сервера и последовательной подмене заголовков. Приведены конкретные изменения: User‑Agent → 'PicoBrowser', Date → год 2018, заголовки трекинга (для имитации 'неотслеживаемого' пользователя), Accept‑Language и имитация IP/локали Швеции. Результат: найден флаг picoCTF{http_h34d3rs_v3ry_c0Ol_much_w0w_b22d773c}.
- SSTI‑задача: проверка уязвимости через инъекцию шаблона с примером '{{78+2}}' для верификации исполнения. Приведены рабочие payload'ы для получения списка файлов и чтения флага: '{{request.application.__globals__.__builtins__.__import__(\'os\').popen(\'ls -R\').read()}}' и '{{request.application.__globals__.__builtins__.__import__(\'os\').popen(\'cat flag.txt\').read()}}'.
- Примеры вывода сервера и методы верификации результата на платформе проверки (SkillFactory/picoCTF) — указано совпадение найденных флагов с подсказками.
📊 Для кого подходит
Материал полезен студентам и практикам по информационной безопасности, участникам CTF‑соревнований и разработчикам веб‑приложений для понимания уязвимостей. Особенно актуально для курсов по веб‑безопасности, практических лабораторий и тренингов по обнаружению SSTI и уязвимостей на уровне HTTP.
✨ Особенности
В работе содержатся конкретные, проверенные на практике payload'ы и последовательность изменений заголовков, которые даёт повторяемый результат. Описаны как простые проверки (арифметическое выражение в шаблоне), так и опасные команды, выполняющие 'ls -R' и 'cat flag.txt' на сервере. Есть рекомендации по использованию скрипта для подмены заголовков и подробные комментарии к каждому шагу обхода проверок сервера (браузер, дата, трекинг, геолокация).
❓ Частые вопросы
Подойдет ли для моего ВУЗа?
Структура отчёта соответствует лабораторным требованиям: есть задание, пошаговое выполнение и подтверждённый результат (флаги).
Можно адаптировать?
Да. Описанные payload'ы и последовательность действий легко модифицировать под аналогичные веб‑сервисы и шаблонизаторы.
Технические примечания
В разделе с HTTP‑заголовками детально указано, какие именно поля следует подменять (User‑Agent, Date, заголовки трекинга, Accept‑Language) и в каком порядке для получения валидного ответа. В части SSTI указан точный синтаксис Jinja2‑инъекций и команды через встроенный импорт модуля 'os' для выполнения системных команд.
Практическая ценность
Отчёт даёт готовую методику для лабораторных работ по веб‑безопасности и ориентиры для участия в CTF: проверка наличия SSTI, безопасное тестирование исполнения выражений и аккуратное использование команд для обнаружения флагов. Также полезен для разработчиков — демонстрирует, какие проверки на сервере были недостаточными и как этого избежать.