Как стать автором
Обновить

Массовое ограбление покупателей Fix-Price

Время на прочтение3 мин
Количество просмотров139K
Большинство людей думают, что их очень сложно ограбить, но когда грабителям помогает сам магазин — всё становится в разы проще. Я расскажу как толпе школьников удалось обнести клиентов магазина на огромные суммы и как работники магазина этому поспособствовали.

image

Где то в начале лета с бонусной карты моего друга были сняты все бонусы в размере ~800р, для студента это огромные деньги которые он копил целый год, и мне стало интересно, как злоумышленникам удалось это сделать. Когда я зашёл в личный кабинет, мне было предложено скачать электронную версию карты в виде картинки на телефон. И вот тут то я осознал всю масштабность трагедии! Начнём расследование с самого начала:

Первый фактор: Слабые пароли.

Уязвимость, которая не поддаётся закрытию — сам человек. Я связался с продавцом взломанных аккаунтов и он прислал мне пароли на которые чаще всего попадались аккаунты:

1) Номер телефона без восьмёрки/семёрки
2) Номер телефона с 8, 7, +7
3) 123456
4) 123456789
5) 1234567890
6) qwerty
7) fixprice
8) 111111
9) 222222
10) 12345678
11) 1234567
12) 666666
13) 123123

Пароли отсортированы по популярности. Зайдя на сайт, можно было узнать персональные данные, такие как: почту, номер телефона, дату рождения, ФИО и адрес.

Второй фактор: Проверка номера через сайт

Где взять базу номеров для брута? Вот тут магазин очень сильно облегчил злоумышленникам работу. При авторизации отправлялся всего 1 POST запрос на URL следующего вида:

bonus.fix-price/login

В ответ приходил коротенький JSON который содержал исчерпывающий ответ:

1) Номер не зарегистрирован
2) Почта не зарегистрирована
3) Неверный пароль
4) Внутренняя ошибка сервера

До сих пор сайт помогает проверить номер выдавая ответ «клиент не найден», так же можно было проверить номер на другом поддомене:

konkurs.fix-price/profile/checkmail?email=&phone=

Он сейчас не работает, но раньше там была каптча, обойти которую не составляло проблем — можно было ввести её один раз и посылать кучу запросов. Таким способом, за сутки, злоумышленник перебирал ВСЕ диапазоны номеров небольшого города.

Третий фактор: Бруть без проблем

Сайт никак не блокировал брут с одного IP. Можно было поставить программу на взломанный компьютер и пить чифир не заботясь о прокси. Опять же, за день можно было перебрутить все логины которые нашли на этапе выше.

Кстати, администрацию интересуют масштабы:

image

Думаю и читателей тоже заинтересуют. После моего вопроса о количестве аккаунтов, злоумышленник который занимался их продажей назвал цифру: 30 000. 30 тысяч аккаунтов было взломано всего за 3 месяца!

Общий баланс этих аккаунтов, по его словам, составляет порядка полумиллиона рублей.

Так же была собрана не хилая база номеров размером в более чем миллион записей! На каждый город примерно по 50 тысяч. Возможно, злоумышленник будет продавать эту базу спамерам (или уже продал).

Четвёртый фактор: генерируй штрихкоды сам

Сгенерировать штрихкод? Нет ничего проще:

hash:=sha256(2041 + номер карты)
GET bonus.fix-price/assets/fixprice/images/barcode/%hash%.png

Таким образом можно было украсть чужую карту просто зная её номер! Круто правда? Магазин заботится о безопасности своих покупателей!

Пятый фактор: Сотрудники магазина

Я просто оставлю это здесь:

image

image

На сколько правдивы данные истории я не знаю, просто мимо проходил и заскринил.

События последних 5-ти месяцев

Как только я узнал о проблеме — сразу написал им, но за всё лето так и не получил ответа. Хотел позвонить, но зная старую мудрость «делай добро и беги» я не стал этого делать.

Где то в сентябре они прикрутили облако через которое шёл весь трафик, но сделали это так криво, что можно было брутить через другой поддомен, чем собственно и пользовались злоумышленники.

Примерно месяц назад какой то пользователь выложил огромное количество аккаунтов в продажу, первая половина школьников мигом ринулись запускать IDE и клепать свои бруты, а вторая половина устремилась в магазин обналичивать купленные за 10-15% от баланса карты. В итоге сайт лежал постоянно. И вот спустя неделю было принято такое решение:

image

А потом такое:

image

Заключение


Пострадали в первую очередь покупатели, телефоны всех кто регистрировался на сайте в руках у нехорошего человека, магазин мало того, что не вернул деньги, так вообще отключил всю бонусную систему! Хочу напомнить, что балансы начали пропадать как минимум в начале лета! В их группе вконтакте пользователи дико негодуют по этому поводу и обвиняют магазин во всех смертных грехах, да и если подумать, то правильно делают, если бы магазин отреагировал на моё письмо сразу же — можно было избежать такого развития событий.
Теги:
Хабы:
Всего голосов 157: ↑146 и ↓11+135
Комментарии164

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань