Введение
Написать этот пост меня вдохновила статья, которая давно висит на Хабре. Сразу хочу извиниться перед автором, лучше названия и придумать нельзя. Как вы все знаете «Пятерочка» активно рекламирует свои карты лояльности. В статье выше нам рассказывали о том, что мошенники активируют чужие карточки и списывают баллы. Хакеры пошли дальше и вместо активации чужих карт просто стали взламывать личные кабинеты пользователей. А что? Звучит даже проще активации карт, давайте разберёмся поподробнее.
Немного о безопасности личных кабинетов
Как мы видим войти в личный кабинет можно используя номер телефона и пароль, но не всё так просто. После ввода данных появляется окно для ввода смс кода, который был отправлен на телефон владельца.
Казалось бы, как взломать такое? Перебрать код невозможно, есть лишь 3 попытки, а код четырёхзначный. Сразу отбрасываем данный вариант, но хакерам же как-то удаётся, значит и у нас получится!
Приложение «Пятерочка»
Как и у любого другого магазина с программой лояльности у сети магазинов «Пятерочка» есть своё приложение. Только вот приложение не простое, а со своими тараканами в коде. Давайте же разберёмся, что не так с приложением.
Вход в личный кабинет осуществляется так же с помощью номера телефона и пароля, а ещё сверху приходит смс подтверждение, но вот есть один интересный момент. Приложение «запоминает» учётную запись и при следующей попытке входа вместо смс кода на телефон отправляет пуш уведомление напрямую в приложение. Сейчас объясню поподробнее. Войдя впервые на свою учётную запись вам предстоит ввести код из смс для входа. Если вы по какой-то причине решили выйти и зайти снова, то во второй и последующие разы смс код вам приходить не будет, а вместо него в приложении будет само заполняться поле смс кода. Во диво! Сделано это конечно красиво, но есть один огромный недостаток. Замечен баг был мной в приложении «Пятерочка» версии 2.12.1, возможно есть и в других версиях. Что за баг и как его повторить?
Ниже вы можете лицезреть два видео, сняты они были не мной, но они очень наглядно показывают всю проблемы пуш уведомлений и бага приложения.
i.imgur.com/BcLnANt.mp4
i.imgur.com/LIGOkBT.mp4
В первом видео видно, как хакер вводит данные для входа, после чего принимает смс на телефон и заходит в свой аккаунт. После чего выходит и проходит авторизацию снова. Во второй раз нам прекрасно видно, что никакая смс на телефон не приходит и поле для ввода автоматически заполняется пуш уведомлением."
Во втором видео злоумышленник уже пытается войти в аккаунт не принадлежащий ему. Он вводит данные, но кода из смс он не знает по понятным причинам. Потом он убирает приложение из процессов и запускает его снова. На этом моменте прекрасно виден баг приложения. Открывается совершенно белое окно, после чего злоумышленник выходит из аккаунта. После чего вводит данные для входа повторно и о чудо, ему приходит пуш уведомление! Почему же такое произошло? Спросить надо у разработчиков приложения…
Методы решения
Лично я могу посоветовать разработчикам отключить пуш уведомления, что злоумышленники не могли взламывать аккаунты. Отключить конечно же на время до решения проблемы. Сам я не силён в разработке приложений и ничего дельного посоветовать не могу, но пуш уведомления они до сих пор не отключили.
Последствия
Из-за ошибки в коде страдают обычные люди, а именно добросовестные покупатели. Почитать гневные отзывы о том, что у людей украли баллы можно по ссылке: vk.com/topic-19098821_24191218. Ниже оставлю пару постов, на самом деле их намного больше, но думаю сейчас уже не смогу найти некоторые.
Проблема с воровством баллов очень актуальна и процветает это дело минимум год. Даже на пикабу можно найти посты.
Выводы
Не бывает идеальных приложений, но этот баг ужасен. Я не призываю вас преступать закон и особенно воровать что-то у кого-то! Пост был создан с целью исправить баг и достучаться до разработчиков приложения (письмо отправлял им больше месяца назад и результата ноль).
Всем добра и не допускайте таких ошибок в коде!"
Автор: Moldak