Событие | Название | Категория | Сложность |
---|---|---|---|
VKA-CTF`2020 | Органайзер | Криптография | 1-3 курс |
Автор: iC0nst
Чем больше подчиненных, тем больше задач им приходится ставить. За всем и не уследишь. Для таких целей мы как раз начали изобретать сервис управления задачами. Правда у нас есть некоторые трудности. Зайдите за администратора и попробуйте разобраться во всем.
Поскольку в задании не даны исходные файлы, и явных подсказок нет, то сначала просто ознакомимся с функционалом сайта. Зарегистрировавшись с логином/паролем qwe : qwe в личном кабинете нас ждёт следующая надпись :
qwe, для вас пока нет задач
Ничего интересного больше нет.
Однако, выйдя с сайта и зайдя на него снова, нажав на вкладку Задачи , мы попадаем снова в свой аккаунт.
Проверим файлы cookie. Есть cookie с названием cryptouser, формат которой очень похож на jwt.
eyJhbGciOiAiRUNEU0EiLCJ0eXAiOiAiUDM4NCIsICJtZXNzYWdlX2hhc2giOiAic2hhMSJ9.eyJ1c2VyIjogImFzZGZnaCIsICJhZG1pbiI6ICJ0cnVlIn0=.Wzc5ODU4NjI3MTE0NjA3MzQ2MTUyODYyNzY1MDgxNTUyNDYwNTM5NDkyNDYzNzM1MjQ4NzcyMzYzMTY0MjY3NjQ0Nzc0NzQzNTcxMTAyODE2OTQ5MDk5MDc1MTI2OTYyNzU1MzEzMjc2NTM5ODg0NzkxMzUsIDQ3MTk4OTg1Mzk3NDI1MzExOTI3Njc0OTQ5NTMxODIyOTEyMTc0NTI1MDc4MjU5Njg3Njg2MDMxMzY3ODg3NzU3OTYwODYwNDYwMTg1MzE0NTcxNDkzMTYyODQ3NTQ1OTE2MTc3NDgyMDU4ODY5MjgyNjNd
Из заголовка видно, что для подписи заголовка и пэйлоада (второй части) используется алгоритм ecdsa, при этом используется стандартная эллиптическая кривая P224:
{"alg": "ECDSA", "typ": "P224", "message_hash": "sha1"}
Известно, что при использовании ecdsa-алгоритма обязательно надо генерировать новое значение k для каждой подписи, поскольку в противном случае приватный ключ будет раскрыт.
Создав ещё один аккаунт, убеждаемся, что значения r в двух подписях одинаковы, из чего делаем вывод о возможности подделки cookie со значением "true" по ключу "админ".
После подмены cookie и обновления страницы нас встречает следующая фраза.
vka{curv35_0f_m1l174ry_cyb3r53cur17y_c0n7357}