Warning: include(/volume1/web/cyberhost.biz/wp-content/plugins/jaster_cahce/cache/top-cache.php): failed to open stream: No such file or directory in /volume1/web/cyberhost.biz/index.php on line 9 Call Stack: 0.0001 356256 1. {main}() /volume1/web/cyberhost.biz/index.php:0 Warning: include(): Failed opening '/volume1/web/cyberhost.biz/wp-content/plugins/jaster_cahce/cache/top-cache.php' for inclusion (include_path='.:/usr/share/pear') in /volume1/web/cyberhost.biz/index.php on line 9 Call Stack: 0.0001 356256 1. {main}() /volume1/web/cyberhost.biz/index.php:0 [Из песочницы] Рокетбанк подверг риску персональные данные клиентов и данные банковских карт | Хостинг за 90 р. от cyberhost.biz — платный хостинг
+7 993 930-19-90 suport@cyberhost.biz

Время от времени я провожу внешние аудиты безопасности IT компаний, поддерживающих Bug Bounty. Согласно странице Рокетбанк может принять решение о вознаграждении в случаях обнаружения серьезных и публично неразглашенных уязвимостей.

За текущий год я обнаружил значительное количество уязвимостей в системе Рокетбанка, в том числе позволяющих получить персональные данные всех клиентов, реализовать XSS-атаку. В данной статье я опишу результаты последнего проведенного мной аудита Рокетбанка.

В период с 31.07.2016 по 03.08.2016 я проводил очередной аудит безопасности Рокетбанка, в результате которого были обнаружены следующие уязвимости:

Межсайтовый скриптинг
При любых операциях Рокетбанк генерирует страницу квитанции, которую можно отправить на почту или посмотреть по ссылке в браузере. Если квитанция на операцию по переводу или пополнению между друзьями (метод /api/v5/friend_transfers/income), то наименование POS-терминала на странице квитанции генерируется следующим образом: «запрос %ИМЯ ДРУГА ИЗ КОНТАКТА В СМАРТФОНЕ%», при этом символы HTML в имени друга не экранируются.

Таким образом можно внедрить код на страницу квитанции, путем простым изменением имени контакта на html код, который злоумышленник захочет выполнить на странице квитанции.

Наглядный пример выполнения:


Пример реализации:
Запрос:


Ответ:


Получаем ссылку на квитанцию:


По ссылке находится страница квитанции с JavaScript-кодом, который изменяет страницу квитанции на страницу перевода средств с перехватом данных банковской карты:

Используя данную уязвимость, злоумышленник может, например, изменить страницу квитанции на страницу перевода денежных средств с перехватом данных банковских карт.

Уязвимость, позволяющая получить персональные данные приглашённых клиентов
При запросе приложением приглашенных клиентов, метод /api/v5/invitations/all раскрывает, помимо имени и фамилии из паспорта, номер телефона и адрес электронной почты.

Пример реализации:

Используя данную уязвимость, злоумышленник может получить персональные данные клиента Рокетбанка, которого он пригласил.

Сразу после составления отчёта по аудиту, я отправил его в Рокетбанк: службе безопасности и техническому директору Олегу Козыреву. Уязвимости были устранены в течении часа, однако ответа не поступало в течение недели.

Только после того, как я уведомил Рокетбанк о том, что планирую опубликовать результаты, мною был получен адекватный фидбэк со стороны Рокетбанка, однако, Олег сказал, что Bug Bounty они больше не поддерживают:
Кроме того, поясню, что какой-то политики «найди баг — мы заплатим» в реальности нет. То, что написано на сайте по этому поводу — это просто слова, написанные мной 3 года назад. После сделки с Открытием, не считаю нужным продолжать эту практику.Однако информация о вознаграждении за обнаружение уязвимостей до сих пор расположена на сайте Рокетбанка.

После длительной дискуссии Рокетбанк всё же предложил вознаграждение, от которого я был вынужден отказаться.

Warning: include(/volume1/web/cyberhost.biz/wp-content/plugins/jaster_cahce/cache/bottom-cache.php): failed to open stream: No such file or directory in /volume1/web/cyberhost.biz/index.php on line 13 Call Stack: 0.0001 356256 1. {main}() /volume1/web/cyberhost.biz/index.php:0 Warning: include(): Failed opening '/volume1/web/cyberhost.biz/wp-content/plugins/jaster_cahce/cache/bottom-cache.php' for inclusion (include_path='.:/usr/share/pear') in /volume1/web/cyberhost.biz/index.php on line 13 Call Stack: 0.0001 356256 1. {main}() /volume1/web/cyberhost.biz/index.php:0