Добрый день коллеги продолжаем по традиции райты по таску писать. На этот раз ну "очень легкий таск", я так думал!!! Забегая на будущее обращаюсь к админам - сделайте таск проще!!! по крайней мере в получении секретки, не известно в каком списке угнанных паролей искать!!! Прошу написать в комменты, может я, что не так делаю.
Ну вообщем погнали разбирать таск
Все традиционно, заходим по ссылке и видим
Кто не разбирается как и я, мы тут нифига для себя не видим xD. Ну начнем искать хоть какую то информацию по jwt, спустя "n" количество часов, что то начинаем понимать.
Нам нужно сгенерировать токен "/gen-kwt/{name}", генерируется он с вашим именем + админка false + секретка (верификация) + алгоритм шифрования;
Далее смотрим "/check-jwt/{jwt_token}", тут проверяется наш сгенерированный токен и дальше видим, что при декодировании, смотрит токен + секретку + алгоритм;
Дальше проверка уже.
Предыстория: Я долго пытался понять, что тут надо. И пробовал куками подкинуть запрос как из уроков, и алгоритмы в "none" ставить. Ничего не помогали и ничего не мог понять. Как и говорил спустя "n" часов чет сдвинулось с мертвой точки.
Давайте сгенерируем токен (имя может быть любое)
Полученный токен записываем в блокнот.
{"jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoibmFtZSIsImlzQWRtaW4iOmZhbHNlfQ.4V1Bp8mDNbYCNaLJiETmNZUSGEBtS0suGtPBR7w_FSk"}
Давайте проверим его через чек. Получаем вывод данных как из проверки
Переходим в burp и проверяем, что он у нас насобирал. В последнее время стал пользоваться встроенным браузером
Отправляем наш запрос в репитер
Переходим во вкладку JSON WEB Token
Здесь нам нужно поменять будет поле isAdmin на true
Отправляем запрос и получаем в ответ, что верификация провалена, нам нужна "Секретка"
Копируем наш токен из burp или из блокнота куда мы сохраняли токен
Переходим в hashcat. ставим параметры -a 0 ( мод атаки 0) -m 16500 (метод jwt из таблице по hashcat --help) далее вставляем свой токен и вставляем файл со слитыми паролями
github.com
Сразу скажу там нигде нету секретки
По рекомендации коллеги добавил в файл с паролями значение CODEBY , CODEBY{
Получаем секретку в конце токена :CODEBY{
Переходим в JSON Web Tokens и проверяем на достоверность
В первое поле вставляем свой токен, во второе вставляем секретку
Получаем зеленое поле сигнатура верифицирована
Переходим в декодер и кодим в base64 нашу секретку и закидываем в блокнот
Далее переходим и создаем ключ для подписания (верификации)
Сначала генерируем ключ, потом меняем поле "k" на нашу закодированную секретку из блокнота
Далее меняем значение на true, кликаем sign, выбираем наш ключ и жмем ок
Отправляем запрос и получаем флаг
Спасибо коллеге за наводку с секреткой, сам бы не догадался, но по честному прошел весь этап! Думаю у вас тоже получится!
Критика принимается, и жду ответ от админов по поводу секретки
)))
и по традиции
«Не стыдно не знать, стыдно не учиться» — русская пословица.
Ну вообщем погнали разбирать таск
Все традиционно, заходим по ссылке и видим
Кто не разбирается как и я, мы тут нифига для себя не видим xD. Ну начнем искать хоть какую то информацию по jwt, спустя "n" количество часов, что то начинаем понимать.
Нам нужно сгенерировать токен "/gen-kwt/{name}", генерируется он с вашим именем + админка false + секретка (верификация) + алгоритм шифрования;
Далее смотрим "/check-jwt/{jwt_token}", тут проверяется наш сгенерированный токен и дальше видим, что при декодировании, смотрит токен + секретку + алгоритм;
Дальше проверка уже.
Предыстория: Я долго пытался понять, что тут надо. И пробовал куками подкинуть запрос как из уроков, и алгоритмы в "none" ставить. Ничего не помогали и ничего не мог понять. Как и говорил спустя "n" часов чет сдвинулось с мертвой точки.
Давайте сгенерируем токен (имя может быть любое)
Ссылка скрыта от гостей
Полученный токен записываем в блокнот.
{"jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoibmFtZSIsImlzQWRtaW4iOmZhbHNlfQ.4V1Bp8mDNbYCNaLJiETmNZUSGEBtS0suGtPBR7w_FSk"}
Давайте проверим его через чек. Получаем вывод данных как из проверки
Ссылка скрыта от гостей
Переходим в burp и проверяем, что он у нас насобирал. В последнее время стал пользоваться встроенным браузером
Отправляем наш запрос в репитер
Переходим во вкладку JSON WEB Token
Здесь нам нужно поменять будет поле isAdmin на true
Отправляем запрос и получаем в ответ, что верификация провалена, нам нужна "Секретка"
Копируем наш токен из burp или из блокнота куда мы сохраняли токен
Переходим в hashcat. ставим параметры -a 0 ( мод атаки 0) -m 16500 (метод jwt из таблице по hashcat --help) далее вставляем свой токен и вставляем файл со слитыми паролями
GitHub - dw0rsec/rockyou.txt: rockyou.txt wordlist
rockyou.txt wordlist. Contribute to dw0rsec/rockyou.txt development by creating an account on GitHub.
Сразу скажу там нигде нету секретки
По рекомендации коллеги добавил в файл с паролями значение CODEBY , CODEBY{
Получаем секретку в конце токена :CODEBY{
Переходим в JSON Web Tokens и проверяем на достоверность
В первое поле вставляем свой токен, во второе вставляем секретку
Получаем зеленое поле сигнатура верифицирована
Переходим в декодер и кодим в base64 нашу секретку и закидываем в блокнот
Далее переходим и создаем ключ для подписания (верификации)
Сначала генерируем ключ, потом меняем поле "k" на нашу закодированную секретку из блокнота
Далее меняем значение на true, кликаем sign, выбираем наш ключ и жмем ок
Отправляем запрос и получаем флаг
Спасибо коллеге за наводку с секреткой, сам бы не догадался, но по честному прошел весь этап! Думаю у вас тоже получится!
Критика принимается, и жду ответ от админов по поводу секретки

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