"Flask для новичков: как превратиться из Пользователя в Админа за 5 минут!"
- Приветствие
- Разведка
- Получение сессии
- Работа с инструментом
- Получение прав админа
- Вывод
Приветствую всех читателей форума и любителей CTF. Сегодня рассмотрим таск на Кодебай Геймс "Привилегированный гость" из категории Веб.
Первое что мы видим попадая на сайт какой то эмулятор терминала, так же мы находимся как гость в данном случае.
Идем в инструменты разработчика и видим такой скрипт :
Это команды которые мы можем выполнять в данном случае, другие приниматься не будут.
Соответственно с привелегиями гость используя getFlag нам ничего не перепадет.
Пробуем перехватить все это в Burp suite и проанализировать что мы имеем.
Здесь мы обратим внимание что у нас есть сессия в куках, это сессия гостя.
Через Wappalizer я вижу что стоит Flask. Для работы с сессиями будем использовать Flask Unsign.
Это инструмент командной строки для расшифровки, подделки и перебора подписанных куки-сессий Flask.
Первая ссылка на гитхабе, там довольно четкое описание для работы с инструментом.
В данном случае программа успешно декодировала нашу куку сессии Flask. Результат декодирования показывает, что сессия включает в себя
информацию о _fresh, _id и _user_id, причем идентификатор пользователя установлен в guest.
Веб-приложения Flask используют секретный ключ (secret key) для создания подписи данных, таких как сессии пользователей.
Этот секретный ключ необходим для безопасного хранения и передачи данных сессии между клиентом и сервером.
Утечка секретного ключа может привести к серьезным угрозам безопасности, поэтому его защита является важной задачей для
разработчиков веб-приложений на Flask.
Этот инструмент дает нам возможность использовать атаку на основе словаря и сбрутить наш ключ.
Уже имея наш ключ мы можем изменить значение user_id.
В целом наша сессия готова. Перехватываем запрос, вставляем нашу сессию и отправляем ее :
Ура мы админ, спокойно забираем флаг и сдаем его.
Вывод :
Используя инструмент Flask-Unsign, мы можем анализировать и изменять сеансовые куки Flask-приложений. Это демонстрирует серьезную уязвимость в безопасности, когда сессии хранятся на клиентской стороне без достаточной защиты. Подделка сеансов позволяет злоумышленнику представить себя за другого пользователя, получив доступ к его привилегиям и конфиденциальной информации.
Спасибо за внимание и отдельное спасибо Админам за такие таски.
- Приветствие
- Разведка
- Получение сессии
- Работа с инструментом
- Получение прав админа
- Вывод
Приветствую всех читателей форума и любителей CTF. Сегодня рассмотрим таск на Кодебай Геймс "Привилегированный гость" из категории Веб.
Первое что мы видим попадая на сайт какой то эмулятор терминала, так же мы находимся как гость в данном случае.
Идем в инструменты разработчика и видим такой скрипт :
Это команды которые мы можем выполнять в данном случае, другие приниматься не будут.
Соответственно с привелегиями гость используя getFlag нам ничего не перепадет.
Пробуем перехватить все это в Burp suite и проанализировать что мы имеем.
Здесь мы обратим внимание что у нас есть сессия в куках, это сессия гостя.
Через Wappalizer я вижу что стоит Flask. Для работы с сессиями будем использовать Flask Unsign.
Это инструмент командной строки для расшифровки, подделки и перебора подписанных куки-сессий Flask.
Первая ссылка на гитхабе, там довольно четкое описание для работы с инструментом.
В данном случае программа успешно декодировала нашу куку сессии Flask. Результат декодирования показывает, что сессия включает в себя
информацию о _fresh, _id и _user_id, причем идентификатор пользователя установлен в guest.
Веб-приложения Flask используют секретный ключ (secret key) для создания подписи данных, таких как сессии пользователей.
Этот секретный ключ необходим для безопасного хранения и передачи данных сессии между клиентом и сервером.
Утечка секретного ключа может привести к серьезным угрозам безопасности, поэтому его защита является важной задачей для
разработчиков веб-приложений на Flask.
Этот инструмент дает нам возможность использовать атаку на основе словаря и сбрутить наш ключ.
Уже имея наш ключ мы можем изменить значение user_id.
В целом наша сессия готова. Перехватываем запрос, вставляем нашу сессию и отправляем ее :
Ура мы админ, спокойно забираем флаг и сдаем его.
Вывод :
Используя инструмент Flask-Unsign, мы можем анализировать и изменять сеансовые куки Flask-приложений. Это демонстрирует серьезную уязвимость в безопасности, когда сессии хранятся на клиентской стороне без достаточной защиты. Подделка сеансов позволяет злоумышленнику представить себя за другого пользователя, получив доступ к его привилегиям и конфиденциальной информации.
Спасибо за внимание и отдельное спасибо Админам за такие таски.
Последнее редактирование модератором: