Writeup Веб [Жесткий Type] [writeup]

Kot_oo

Green Team
03.04.2025
16
19
IP: 62.173.140.174:16077
Работаем через Burp Pro

1)
Заходим на сайт, видим форму. По классике пробуем ввести admin admin (Ничего не выходит)
1759638876039.webp


2) Регистрируемся с любыми данными (Например: test test)

1759638981538.webp


3) Заходим в ученую запись.

1759639054747.webp


4) Переходим в Admin panel и забираем флаг CODEBY{F4K3_FL4G}
Мы молодцы)))
1759639110371.webp


5) Переходим в Burp, исследуем POST GET запросы. Нас интересует Cookie: token.
При исследовании понимаем, что token не иное как JWT - JSON WebTokens.
JWT состоит из 3-х частей разделенных точкой
5.1 Заголовок JWT
5.2 Полезная нагрузка JWT
5.3 Подпись JWT


1759639202806.webp


6) Декодируем по очереди три части в base 64 через Burp (Или можем полностью декодировать токен в онлайн декодере JWT)
6.1 Заголовок JWT.
Видим алгоритм шифрования "HS256" и тип "JWT"
1759639479950.webp


6.2 Полезная нагрузка JWT
Здесь видим учетные данные, роль пользователя, и другая информация об авторизации
1759639562838.webp


6.3 декодирование полностью токена. Проверка подписи не обязательна. Можем совершить атаку, подставив значение.
1759640110804.webp


7) Отправляем запрос в репитер.
1759640186917.webp


8) Переходим в декодер и декодируем полезную нагрузку. Заменяем роль пользователя на admin. Кодируем в base64. Копируем полезную нагрузку и заменяем в токене в репитер
1759640312779.webp


9) Отправляем запрос. Получаем флаг.

1759640413045.webp


При измененном виде флага, декодируем в html

1759640470026.webp


1759640554107.webp


Уязвимость: Отсутствие подписи JWT токена
Решение: Внедрить подпись токена от изменения данных


Всем спасибо
Критика принимается :)

и по традиции

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab