July 28, 2024

Райтап Bug Bank от CyberED 

TLDR

  • В API эндпоинте GET /api/auth/user/<uid> уязвимость типа IDOR, а также раскрытие секретных данных.
  • Чужой uid можно получить зная номер телефона жертвы, отправив ей средства через эндпоинт POST /api/send/send-by-phone/ – в ответ придет uid жертвы.

Как я до этого дошел

Анонс задачи:

Интересно, какое кодовое слово у Эллиота?
Таск на IDOR в воображаемом банке Bug Bank, основанный на настоящем багбаунти отчёте, c платформы BI.ZONE Bug Bounty

Из анонса задачи делаю следующие выводы:

  • Нужно узнать кодовое слово Эллиота
  • Заложенная уязвимость – IDOR

При ознакомлении с сайтом Bug Bank заметил что в отзывах указывается номер телефона автора отзыва и в списке отзывов есть Эллиот:

Регистрируемся и заходим в аккаунт, на странице с информацией о профиле можно посмотреть свое кодовое слово:

При нажатии на кнопку "Request code word" в Burp Suite ловлю такой запрос:

То есть в API передается uid а в ответе получаем всю информацию по пользователю (в том числе и кодовое слово) с таким uid. Очень похоже, что IDOR именно в этом эндпоинте, но так как uid это UUID4, перебирать значения – такая себе идея. Запомнил этот метод и пошел смотреть дальше на функциональность банка.

Последний доступный раздел – "Transfer", в нем можно перевести деньги по номеру телефона:

Ввожу номер Эллиота со страницы отзывов, отправляю перевод и смотрю в Burp Suite на запросы. При переводе отправился один запрос, в ответе которого приходит какой-то uid:

Пробую сунуть этот uid в запрос на получение информации о пользователе, и бинго, это оказался uid Эллиота. Кодовое слово Эллиота у нас :)