 |

29.02.2024, 20:50
|
|
Познающий
Регистрация: 23.12.2023
Сообщений: 60
С нами:
1260136
Репутация:
0
|
|
"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-приложений. Это демонстрирует серьезную уязвимость в безопасности, когда сессии хранятся на клиентской стороне без достаточной защиты. Подделка сеансов позволяет злоумышленнику представить себя за другого пользователя, получив доступ к его привилегиям и конфиденциальной информации.
Спасибо за внимание и отдельное спасибо Админам за такие таски.
|
|
|

29.02.2024, 21:14
|
|
Постоянный
Регистрация: 28.05.2022
Сообщений: 800
С нами:
2086530
Репутация:
0
|
|
Отличный райтап!
Таск точно не изи, т.к. работа с инструментом flask-unsign, сбрутить, подписать, подменить куки.
|
|
|

29.02.2024, 21:20
|
|
Познающий
Регистрация: 23.12.2023
Сообщений: 60
С нами:
1260136
Репутация:
0
|
|
Спасибо ! Согласен что не изи, самому пришлось повозиться и изучить инструмент.
|
|
|

01.03.2024, 00:26
|
|
Новичок
Регистрация: 07.01.2024
Сообщений: 23
С нами:
1238540
Репутация:
0
|
|
Крутой разбор крутого таска. Чтобы его решить, нужно реально изучить инструмент. Спасибо!
|
|
|

01.03.2024, 09:50
|
|
Новичок
Регистрация: 03.07.2017
Сообщений: 7
С нами:
4665206
Репутация:
2
|
|
Капец. А у меня знаний почти нет и для меня это был сложный таск. Я несколько дней возился с тем что знаю и ничего не помогало. Читая OWASP, я дошел до кражи сессии. Подумал, что задание перезагружается там каждые 30 минут и можно подобрать сессию, когда будет только начинаться. Потом понял, что сессию так не подобрать так как она для каждого отдельно запускается. Потом подумал, есть ли возможность расшифровать сессию, думал что там php. Уже опустил руки. Хорошо хоть решение есть. Теперь понятно что можно делать. Значит я был близко, но из-за незнания инструментов был далёк.
|
|
|

28.03.2024, 15:40
|
|
Новичок
Регистрация: 17.03.2024
Сообщений: 0
С нами:
1137345
Репутация:
0
|
|
Хорошее решение ,но для совсем начинающих будет тяжело,есть "Подводные камни" всё таки это ближе к средней сложности.
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|