Kot_oo
Green Team
- 03.04.2025
- 16
- 19
IP: 62.173.140.174:16077
Работаем через Burp Pro
1) Заходим на сайт, видим форму. По классике пробуем ввести admin admin (Ничего не выходит)
2) Регистрируемся с любыми данными (Например: test test)
3) Заходим в ученую запись.
4) Переходим в Admin panel и забираем флаг CODEBY{F4K3_FL4G}
Мы молодцы)))
5) Переходим в Burp, исследуем POST GET запросы. Нас интересует Cookie: token.
При исследовании понимаем, что token не иное как JWT - JSON WebTokens.
JWT состоит из 3-х частей разделенных точкой
5.1 Заголовок JWT
5.2 Полезная нагрузка JWT
5.3 Подпись JWT
6) Декодируем по очереди три части в base 64 через Burp (Или можем полностью декодировать токен в онлайн декодере JWT)
6.1 Заголовок JWT.
Видим алгоритм шифрования "HS256" и тип "JWT"
6.2 Полезная нагрузка JWT
Здесь видим учетные данные, роль пользователя, и другая информация об авторизации
6.3 декодирование полностью токена. Проверка подписи не обязательна. Можем совершить атаку, подставив значение.
7) Отправляем запрос в репитер.
8) Переходим в декодер и декодируем полезную нагрузку. Заменяем роль пользователя на admin. Кодируем в base64. Копируем полезную нагрузку и заменяем в токене в репитер
9) Отправляем запрос. Получаем флаг.
При измененном виде флага, декодируем в html
Уязвимость: Отсутствие подписи JWT токена
Решение: Внедрить подпись токена от изменения данных
Всем спасибо
Критика принимается
и по традиции
«Не стыдно не знать, стыдно не учиться»
Незнание само по себе не является позором, но отказ от обучения и игнорирование возможности исправить свои пробелы — это повод для стыда.
Работаем через Burp Pro
1) Заходим на сайт, видим форму. По классике пробуем ввести admin admin (Ничего не выходит)
2) Регистрируемся с любыми данными (Например: test test)
3) Заходим в ученую запись.
4) Переходим в Admin panel и забираем флаг CODEBY{F4K3_FL4G}
Мы молодцы)))
5) Переходим в Burp, исследуем POST GET запросы. Нас интересует Cookie: token.
При исследовании понимаем, что token не иное как JWT - JSON WebTokens.
JWT состоит из 3-х частей разделенных точкой
5.1 Заголовок JWT
5.2 Полезная нагрузка JWT
5.3 Подпись JWT
6) Декодируем по очереди три части в base 64 через Burp (Или можем полностью декодировать токен в онлайн декодере JWT)
6.1 Заголовок JWT.
Видим алгоритм шифрования "HS256" и тип "JWT"
6.2 Полезная нагрузка JWT
Здесь видим учетные данные, роль пользователя, и другая информация об авторизации
6.3 декодирование полностью токена. Проверка подписи не обязательна. Можем совершить атаку, подставив значение.
7) Отправляем запрос в репитер.
8) Переходим в декодер и декодируем полезную нагрузку. Заменяем роль пользователя на admin. Кодируем в base64. Копируем полезную нагрузку и заменяем в токене в репитер
9) Отправляем запрос. Получаем флаг.
При измененном виде флага, декодируем в html
Уязвимость: Отсутствие подписи JWT токена
Решение: Внедрить подпись токена от изменения данных
Всем спасибо
Критика принимается

и по традиции
«Не стыдно не знать, стыдно не учиться»
Незнание само по себе не является позором, но отказ от обучения и игнорирование возможности исправить свои пробелы — это повод для стыда.