ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Разминка с JWT [writeup] по таску (https://forum.antichat.xyz/showthread.php?t=1644974)

Kot_oo 03.05.2025 16:19

Добрый день коллеги продолжаем по традиции райты по таску писать. На этот раз ну "очень легкий таск", я так думал!!! Забегая на будущее обращаюсь к админам - сделайте таск проще!!! по крайней мере в получении секретки, не известно в каком списке угнанных паролей искать!!! Прошу написать в комменты, может я, что не так делаю.

Ну вообщем погнали разбирать таск

https://forum.antichat.xyz/attachments/29118065/1.png

Все традиционно, заходим по ссылке и видим

https://forum.antichat.xyz/attachments/29118065/2.png

Кто не разбирается как и я, мы тут нифига для себя не видим xD. Ну начнем искать хоть какую то информацию по jwt, спустя "n" количество часов, что то начинаем понимать.
Нам нужно сгенерировать токен "/gen-kwt/{name}", генерируется он с вашим именем + админка false + секретка (верификация) + алгоритм шифрования;
Далее смотрим "/check-jwt/{jwt_token}", тут проверяется наш сгенерированный токен и дальше видим, что при декодировании, смотрит токен + секретку + алгоритм;
Дальше проверка уже.

Предыстория: Я долго пытался понять, что тут надо. И пробовал куками подкинуть запрос как из уроков, и алгоритмы в "none" ставить. Ничего не помогали и ничего не мог понять. Как и говорил спустя "n" часов чет сдвинулось с мертвой точки.

Давайте сгенерируем токен (имя может быть любое)

http://62.173.140.174:16007/gen-jwt/name

https://forum.antichat.xyz/attachments/29118065/3.png

https://forum.antichat.xyz/attachments/29118065/4.png

Полученный токен записываем в блокнот.

{"jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuY W1lIjoibmFtZSIsImlzQWRtaW4iOmZhbHNlfQ.4V1Bp8mDNbYC NaLJiETmNZUSGEBtS0suGtPBR7w_FSk"}

Давайте проверим его через чек. Получаем вывод данных как из проверки

http://62.173.140.174:16007/check-jwt/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoib mFtZSIsImlzQWRtaW4iOmZhbHNlfQ.4V1Bp8mDNbYCNaLJiETm NZUSGEBtS0suGtPBR7w_FSk

https://forum.antichat.xyz/attachments/29118065/5.png

Переходим в burp и проверяем, что он у нас насобирал. В последнее время стал пользоваться встроенным браузером

https://forum.antichat.xyz/attachments/29118065/6.png

Отправляем наш запрос в репитер

https://forum.antichat.xyz/attachments/29118065/7.png

Переходим во вкладку JSON WEB Token
Здесь нам нужно поменять будет поле isAdmin на true

https://forum.antichat.xyz/attachments/29118065/8.png

Отправляем запрос и получаем в ответ, что верификация провалена, нам нужна "Секретка"

https://forum.antichat.xyz/attachments/29118065/9.png

Копируем наш токен из burp или из блокнота куда мы сохраняли токен

https://forum.antichat.xyz/attachments/29118065/10.png

Переходим в hashcat. ставим параметры -a 0 ( мод атаки 0) -m 16500 (метод jwt из таблице по hashcat --help) далее вставляем свой токен и вставляем файл со слитыми паролями

https://github.com/wallarm/jwt-secrets/blob/master/jwt.secrets.list

GitHub - dw0rsec/rockyou.txt: rockyou.txt wordlist

rockyou.txt wordlist. Contribute to dw0rsec/rockyou.txt development by creating an account on GitHub.

github.com


Сразу скажу там нигде нету секретки
По рекомендации коллеги добавил в файл с паролями значение Antichat , Antichat{

https://forum.antichat.xyz/attachments/29118065/11.png

Получаем секретку в конце токена :CODEBY{

https://forum.antichat.xyz/attachments/29118065/12.png

Переходим в JSON Web Tokens и проверяем на достоверность
В первое поле вставляем свой токен, во второе вставляем секретку

Получаем зеленое поле сигнатура верифицирована

https://forum.antichat.xyz/attachments/29118065/13.png

Переходим в декодер и кодим в base64 нашу секретку и закидываем в блокнот

https://forum.antichat.xyz/attachments/29118065/14.png

Далее переходим и создаем ключ для подписания (верификации)

Сначала генерируем ключ, потом меняем поле "k" на нашу закодированную секретку из блокнота

https://forum.antichat.xyz/attachments/29118065/15.png

Далее меняем значение на true, кликаем sign, выбираем наш ключ и жмем ок

https://forum.antichat.xyz/attachments/29118065/16.png

Отправляем запрос и получаем флаг

https://forum.antichat.xyz/attachments/29118065/17.png

Спасибо коллеге за наводку с секреткой, сам бы не догадался, но по честному прошел весь этап! Думаю у вас тоже получится!

Критика принимается, и жду ответ от админов по поводу секретки )))

и по традиции

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

yetiraki 05.05.2025 21:12

Цитата:


Kot_oo сказал(а):

...
Спасибо коллеге за наводку с секреткой, сам бы не догадался, но по честному прошел весь этап! Думаю у вас тоже получится!
...


Я хоть и не админ, но в коде есть строки:

Python:


Код:

secret
=
flag
[
:
7
]

а флаги на борде начинаются с Antichat{

Cruel Lord 15.05.2025 19:10

Ага так и есть,Kot_oo нужно просто внимательно изучить код

Kot_oo 24.05.2025 15:11

Цитата:


Cruel Lord сказал(а):

Ага так и есть,Kot_oo нужно просто внимательно изучить код


Спасибо, учту)

Kot_oo 24.05.2025 15:12

Цитата:


yetiraki сказал(а):

Я хоть и не админ, но в коде есть строки:

Python:


Код:

secret
=
flag
[
:
7
]

а флаги на борде начинаются с Antichat{


Спасибо, на будущее записал себе)


Время: 04:37