Перейти к содержимому
← Каталог python Deserialization

Insecure Deserialization: YAML Unsafe Load

mediumpythonPro
Задача
# Небезопасная десериализация: YAML ## Сценарий Перед вами Flask-приложение интернет-магазина SecureShop. В личном кабинете есть функционал импорта и экспорта пользовательской конфигурации в текстовом формате. Команда разработки выбрала формат YAML — выглядит человекочитаемо, легко редактируется руками. Подвох не в самом формате, а в выборе режима его обработки на стороне сервера. У используемого парсера есть **разные режимы загрузки**, и один из них поддерживает расширения, далеко выходящие за границы «формата данных» — он способен превратить определённые конструкции в фактическое выполнение кода на стороне сервера. Если разработчик подключил именно этот режим к пользовательскому вводу, импорт превращается в Remote Code Execution. ## Цели 1. Авторизуйтесь как `demo` / `demo`. 2. Найдите в приложении функционал импорта конфигурации и определите, как сервер обрабатывает входной YAML. 3. Сформируйте YAML-документ, в котором используется не сами данные, а возможности парсера для выполнения произвольной операции. 4. С помощью полученного RCE прочитайте секрет, в котором содержится CTF-флаг. ## Данные | Параметр | Значение | |----------|----------| | Пользователь | `demo` / `demo` |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru