HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Спасибо за внимание и отдельное спасибо Админам за такие таски.
 
Ответить с цитированием

  #2  
Старый 29.02.2024, 21:14
Exited3n
Постоянный
Регистрация: 28.05.2022
Сообщений: 800
С нами: 2086530

Репутация: 0


По умолчанию

Отличный райтап!

Таск точно не изи, т.к. работа с инструментом flask-unsign, сбрутить, подписать, подменить куки.
 
Ответить с цитированием

  #3  
Старый 29.02.2024, 21:20
vov4ick
Познающий
Регистрация: 23.12.2023
Сообщений: 60
С нами: 1260136

Репутация: 0
По умолчанию

Спасибо ! Согласен что не изи, самому пришлось повозиться и изучить инструмент.
 
Ответить с цитированием

  #4  
Старый 01.03.2024, 00:26
whyrus
Новичок
Регистрация: 07.01.2024
Сообщений: 23
С нами: 1238540

Репутация: 0
По умолчанию

Крутой разбор крутого таска. Чтобы его решить, нужно реально изучить инструмент. Спасибо!
 
Ответить с цитированием

  #5  
Старый 01.03.2024, 09:50
xverizex
Новичок
Регистрация: 03.07.2017
Сообщений: 7
С нами: 4665206

Репутация: 2
По умолчанию

Капец. А у меня знаний почти нет и для меня это был сложный таск. Я несколько дней возился с тем что знаю и ничего не помогало. Читая OWASP, я дошел до кражи сессии. Подумал, что задание перезагружается там каждые 30 минут и можно подобрать сессию, когда будет только начинаться. Потом понял, что сессию так не подобрать так как она для каждого отдельно запускается. Потом подумал, есть ли возможность расшифровать сессию, думал что там php. Уже опустил руки. Хорошо хоть решение есть. Теперь понятно что можно делать. Значит я был близко, но из-за незнания инструментов был далёк.
 
Ответить с цитированием

  #6  
Старый 28.03.2024, 15:40
x0001
Новичок
Регистрация: 17.03.2024
Сообщений: 0
С нами: 1137345

Репутация: 0
По умолчанию

Хорошее решение ,но для совсем начинающих будет тяжело,есть "Подводные камни" всё таки это ближе к средней сложности.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.