Введение
Доброго времени суток, друзья. Кто читал мои предыдущие статьи, должны понимать, что это будет еще один увлекательный взлом. Вот только взламывать мы будем магазин еды. Скажу сразу, что это не просто взлом. Мы не будем использовать дыры в коде системе. Мы возьмем эту систему и просто посмотрим на нее с другой стороны. Иначе говоря: «глазами хакера».
Супермаркет «Перекресток» позиционирует себя как интернет-магазин продуктов. Возможно, это очень умно и удобно в наше время, когда можно заказать продукты, сидя дома на диване. Но все это выглядит слишком гладко, чтобы стать реалией. Везде есть минусы, какие-то недочеты и, собрав их воедино, мы получаем огромную дыру в системе…
Подготовительная часть
Как и любая сеть магазинов, Перекресток имеет свои пластиковые карты, которые может купить любой покупатель за двадцатку деревянных. На эту карту будут начисляться баллы с каждой покупки. Чем больше закупитесь, тем больше баллов начисляется. Когда накопится достаточное количество баллов, вы можете приобрести любые продукты в счет этих баллов (кроме сигарет и спиртного). Курс обмена: 10 баллов = 1 рубль. Подходим к сути. У Перекрестка есть веб-сайт. По системе/задумке «Перекрестка» вы должны купить карту и зарегистрировать ее на сайте, чтобы получить доступ в личный кабинет и совершать покупки онлайн, следить за операциями и тд. Но что вы получаете на кассе? Пластиковую карту с 16-значным номером, которая уже активна. Поэтому многие пользователи даже не знают о существовании этого сайта.
А теперь зайдем на страницу регистрации карты. Выглядит она так:
Okay. Введем номер карты, что потом?
Wow. Введем номер, что потом?
(скриншот не полностью)
Мы входим в личный кабинет, к которому привязывается данная карта. Теперь она полностью под нашим контролем. То есть, мы можем установить официальное приложение на дрон/яблоко и генерировать штрих-код, которым можно расплачиваться на кассе.
Но! Постойте! А что, если мы введем номер не своей карты, а номер телефона свой? Произойдет троллинг, друзья. Чужая карта привяжется к вашему номеру! Аплодирую Перекрестку!
Техническая часть
Что ж, мы можем взять номер любой карты (с этого момента перекресток будет с маленькой буквы) перекрестка, зарегистрировать ее на свой номер.
Важно знать, что на 1 номер можно зарегистрировать аж 5 карт (правило магазина). И все баллы с этих 5 карт суммируются в одну. Важно знать, что номер карты состоит из 16 цифр. Возьмем, для примера, номер 7790 9977 0000 0000. Пусть эта карта будет ваша. Как найти другие? Система следующая! надо прибавить +8 к этому числу. Это и есть номер карты другого человека. Но важно знать, что в одном десятке не может быть больше 1 карты! В таком случае, следует прибавить +10, чтобы перейти на десяток выше.
И так. у вас карта 7790 9977 0000 0000. Следующая: 7790 9977 0000 0008 (+8).
Но в одном десятке не может быть 2 карты, значит еще +10. Итог: 7790 9977 0000 0018 (+10)
Следующая +8: 7790 9977 0000 0026 (+8)
И тд., но с наступлением полусотни, счетчик сбрасывается и вам надо подбирать действующий номер уже вручную. Все просто — вводим номер карты с *1 до *9, пока сайт не предложит нам ввести номер телефона.
С этим разобрались. Дальше!
Хакерская часть
Сразу к делу. Выставляем на сайте «Москву и московскую область», или же «Питер».
Это позволит нам получить доступ в ЛК интернет-магазина. Зарегистрировавшись и войдя в кабинет, мы перейдем во вкладку «добавления карты».
Этот очень удобный инструмент перекресток сделал специально для хакера. Здесь мы можем проверить номер карты на валидность. Вставляем номер и перекресток через json выдает нам «true or false». Ну, вы поняли. Можно даже брут написать. У меня выходило около 1000 валидных карт в час.
Далее — нам предстоит зарегистрировать все эти карты на номера телефонов, войти в кабинет, проверить баланс и, если вас все устраивает, то войти в мобильное приложение под этой картой, сходить в магазин, купить мяска с молочком и отменно покушать за чей-то счет.
Конечно же, так делать не нужно, но мы лишь констатируем факт того, что может случиться. Авось, и уже происходит.
Следствия
Все хорошо, но если у меня один телефон, одна сим-карта. Как мне зарегистрировать другие карты? Ответ прост. Идем на платный сервис, где можем покупать номера, на которые будем принимать смс с кодом подтверждения. Таких сервисов довольно много. 1 номер, в целом, стоит 2-4 рубля. А баланс на картах может превышать 10000 баллов — более 1 тысячи рублей. Так что, это целесообразно.
Повторяю, это не призыв к взлому. Это словно «инструкция к ограблению банка». Врываться и грабить банк никто, конечно же, не будет, но те, кто это сделают, ответят перед законом.
Выводы
Экспериментальным путем было «сбручено» около 500 карт. Баланс варьировался от 50 до 1500 р.
Экспериментально также было проверено на практике. Был поход в магазин, где была произведена закупка на чужую карту. (Чужая карта принадлежала моему знакомому, который был в курсе, но я знал лишь номер карты, которая в последствии была зарегистрирована на мой виртуальный номер и присвоена мне). Приложу чек:
Таким образом, в день можно делать около 2-3 тысяч рублей, сидя дома и попивая чай, прикусывая бутербродом с колбасой, заедая йогуртом, запивая колой и тд.
Все за счет пользователей супермаркета! Или же за счет супермаркета. Тут как бы спорный вопрос, но репутация данного магазина явно подпорчена.
Были попытки связаться с службой поддержки. Слал письма 2 недели. В теме письма ставил «очень важно, вы взломаны». Странно, но не было ответа. Быть может, не восприняли всерьез. Ну да ладно. Все, что описано выше, не так уж и серьезно. Просто обкрадываем покупателей, тратим их деньги и кормим свою семью.
А на этом пока все. Статья не полная, — были скрыты технические аспекты, дабы избежать массового взлома.