Райтап 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
Из анонса задачи делаю следующие выводы:
При ознакомлении с сайтом Bug Bank заметил что в отзывах указывается номер телефона автора отзыва и в списке отзывов есть Эллиот:
Регистрируемся и заходим в аккаунт, на странице с информацией о профиле можно посмотреть свое кодовое слово:
При нажатии на кнопку "Request code word" в Burp Suite ловлю такой запрос:
То есть в API передается uid
а в ответе получаем всю информацию по пользователю (в том числе и кодовое слово) с таким uid
. Очень похоже, что IDOR именно в этом эндпоинте, но так как uid
это UUID4, перебирать значения – такая себе идея. Запомнил этот метод и пошел смотреть дальше на функциональность банка.
Последний доступный раздел – "Transfer", в нем можно перевести деньги по номеру телефона:
Ввожу номер Эллиота со страницы отзывов, отправляю перевод и смотрю в Burp Suite на запросы. При переводе отправился один запрос, в ответе которого приходит какой-то uid
:
Пробую сунуть этот uid
в запрос на получение информации о пользователе, и бинго, это оказался uid
Эллиота. Кодовое слово Эллиота у нас :)