vov4ick
29.02.2024, 20:50
"Flask для новичков: как превратиться из Пользователя в Админа за 5 минут!"
https://forum.antichat.xyz/attachments/29110549/img_13e9fb376c.png
- Приветствие
- Разведка
- Получение сессии
- Работа с инструментом
- Получение прав админа
- Вывод
Приветствую всех читателей форума и любителей CTF. Сегодня рассмотрим таск на Кодебай Геймс "Привилегированный гость" из категории Веб.
Первое что мы видим попадая на сайт какой то эмулятор терминала, так же мы находимся как гость в данном случае.
https://forum.antichat.xyz/attachments/29110549/img_c0ca196c99.png
Идем в инструменты разработчика и видим такой скрипт :
Это команды которые мы можем выполнять в данном случае, другие приниматься не будут.
Соответственно с привелегиями гость используя getFlag нам ничего не перепадет.
https://forum.antichat.xyz/attachments/29110549/img_6fd5645777.png
Пробуем перехватить все это в Burp suite и проанализировать что мы имеем.
Здесь мы обратим внимание что у нас есть сессия в куках, это сессия гостя.
https://forum.antichat.xyz/attachments/29110549/img_9497b7442c.png
Через Wappalizer я вижу что стоит Flask. Для работы с сессиями будем использовать Flask Unsign.
Это инструмент командной строки для расшифровки, подделки и перебора подписанных куки-сессий Flask.
Первая ссылка на гитхабе, там довольно четкое описание для работы с инструментом.
В данном случае программа успешно декодировала нашу куку сессии Flask. Результат декодирования показывает, что сессия включает в себя
информацию о _fresh, _id и _user_id, причем идентификатор пользователя установлен в guest.
https://forum.antichat.xyz/attachments/29110549/img_3c823f55d2.png
Веб-приложения Flask используют секретный ключ (secret key) для создания подписи данных, таких как сессии пользователей.
Этот секретный ключ необходим для безопасного хранения и передачи данных сессии между клиентом и сервером.
Утечка секретного ключа может привести к серьезным угрозам безопасности, поэтому его защита является важной задачей для
разработчиков веб-приложений на Flask.
Этот инструмент дает нам возможность использовать атаку на основе словаря и сбрутить наш ключ.
https://forum.antichat.xyz/attachments/29110549/img_8ab27130c4.png
Уже имея наш ключ мы можем изменить значение user_id.
https://forum.antichat.xyz/attachments/29110549/img_87202f4f9b.png
В целом наша сессия готова. Перехватываем запрос, вставляем нашу сессию и отправляем ее :
https://forum.antichat.xyz/attachments/29110549/img_557859263a.png
Ура мы админ, спокойно забираем флаг и сдаем его.
https://forum.antichat.xyz/attachments/29110549/img_31177b5b7f.png
Вывод :
Используя инструмент Flask-Unsign, мы можем анализировать и изменять сеансовые куки Flask-приложений. Это демонстрирует серьезную уязвимость в безопасности, когда сессии хранятся на клиентской стороне без достаточной защиты. Подделка сеансов позволяет злоумышленнику представить себя за другого пользователя, получив доступ к его привилегиям и конфиденциальной информации.
Спасибо за внимание и отдельное спасибо Админам за такие таски.
https://forum.antichat.xyz/attachments/29110549/img_13e9fb376c.png
- Приветствие
- Разведка
- Получение сессии
- Работа с инструментом
- Получение прав админа
- Вывод
Приветствую всех читателей форума и любителей CTF. Сегодня рассмотрим таск на Кодебай Геймс "Привилегированный гость" из категории Веб.
Первое что мы видим попадая на сайт какой то эмулятор терминала, так же мы находимся как гость в данном случае.
https://forum.antichat.xyz/attachments/29110549/img_c0ca196c99.png
Идем в инструменты разработчика и видим такой скрипт :
Это команды которые мы можем выполнять в данном случае, другие приниматься не будут.
Соответственно с привелегиями гость используя getFlag нам ничего не перепадет.
https://forum.antichat.xyz/attachments/29110549/img_6fd5645777.png
Пробуем перехватить все это в Burp suite и проанализировать что мы имеем.
Здесь мы обратим внимание что у нас есть сессия в куках, это сессия гостя.
https://forum.antichat.xyz/attachments/29110549/img_9497b7442c.png
Через Wappalizer я вижу что стоит Flask. Для работы с сессиями будем использовать Flask Unsign.
Это инструмент командной строки для расшифровки, подделки и перебора подписанных куки-сессий Flask.
Первая ссылка на гитхабе, там довольно четкое описание для работы с инструментом.
В данном случае программа успешно декодировала нашу куку сессии Flask. Результат декодирования показывает, что сессия включает в себя
информацию о _fresh, _id и _user_id, причем идентификатор пользователя установлен в guest.
https://forum.antichat.xyz/attachments/29110549/img_3c823f55d2.png
Веб-приложения Flask используют секретный ключ (secret key) для создания подписи данных, таких как сессии пользователей.
Этот секретный ключ необходим для безопасного хранения и передачи данных сессии между клиентом и сервером.
Утечка секретного ключа может привести к серьезным угрозам безопасности, поэтому его защита является важной задачей для
разработчиков веб-приложений на Flask.
Этот инструмент дает нам возможность использовать атаку на основе словаря и сбрутить наш ключ.
https://forum.antichat.xyz/attachments/29110549/img_8ab27130c4.png
Уже имея наш ключ мы можем изменить значение user_id.
https://forum.antichat.xyz/attachments/29110549/img_87202f4f9b.png
В целом наша сессия готова. Перехватываем запрос, вставляем нашу сессию и отправляем ее :
https://forum.antichat.xyz/attachments/29110549/img_557859263a.png
Ура мы админ, спокойно забираем флаг и сдаем его.
https://forum.antichat.xyz/attachments/29110549/img_31177b5b7f.png
Вывод :
Используя инструмент Flask-Unsign, мы можем анализировать и изменять сеансовые куки Flask-приложений. Это демонстрирует серьезную уязвимость в безопасности, когда сессии хранятся на клиентской стороне без достаточной защиты. Подделка сеансов позволяет злоумышленнику представить себя за другого пользователя, получив доступ к его привилегиям и конфиденциальной информации.
Спасибо за внимание и отдельное спасибо Админам за такие таски.