Приложение старбакс не работает
Это история о том, как я нашел способ нагенерить неограниченное число денег на подарочные карты старбакса, тем самым обеспечить себе пожизненный бесплатный кофе, ну или украсть у них пару миллионов другими способами.
Итак, не так давно мне в голову пришла идея купить 3 карты Старбакса по $5 каждая.
Есть такой малоизвестный класс уязвимостей «race condition». Могу с уверенностью заявить, что большинство приложений, которые могут быть уязвимы, к этой атаке скорее всего уязвимы, ведь далеко не каждый программист при проектировке программ учитывает такие факторы, как параллельность выполнения кода и его последствия.
В веб-приложениях он тоже встречается, обычно в функциях связанных с переводом денег/очков/фантиков/ваучеров. Обо всех тонкостях эксплуатации я расскажу в другой раз, а пока вернемся к переводу между картами в Старбаксе.
Перевод строился из нескольких stateful запросов. Схематично — первый запрос POST /step1?amount=1&from=wallet1&to=wallet2 закладывал все эти значения в сессию на сервере, и лишь второй POST/step2?confirm переводил данные уже заложенные в сессии и очищал ее.
Это существенно усложняет эксплуатацию относительно классической гонки, где нужно лишь повторить один и тот же запрос несколько раз одновременно. Ведь как только первый запрос очищает сессию, второй уже натыкается на пустую сессию! И чтобы как-то заставить это работать, пришлось бы делать сложную композицию запросов, записывающую в сессию сразу после ее очищения первым запросом и перед выполнением второго запроса. Такое могло бы сработать раз из миллиона попыток, или вообще не сработать.
Но всегда есть обход для таких «полу защит» — можно залогиниться в один и тот же аккаунт с двух разных браузеров / сессий. Тогда эксплуатация выглядит приблизительно так:
После 5 попыток ничего интересного не произошло и я хотел уже было сдаться. Особенность состояния гонки в том, что ее можно лишь попытаться найти стороннему атакующему, ведь неизвестно, какие защиты стоят (число запросов по IP? запросов на аккаунт? запросов на действие?) и единственный способ проверить уязвимы ли вы — это тщательно проаудировать исходный код на наличие должных пессимистических локов в базе данных.
На 6-ой запрос произошло чудо — перевод был произведен два раза и у меня стало две карты с 15 и 5 долларами, 20 в сумме. Чтобы считать это за proof of concept, осталось убедиться, что магазин примет эти карты.
Я пошел в ближайший работающий Cтарбакс на market st.
— Дайте мне чего-нибудь на $16.
— O_o.
— Ну что у вас самое дорогое?
— Вон те сэндвичи.
Итак, в нашу маленькую операцию Ы было инвестировано 15 долларов, а закупок сделано на 16.70. Зная отношение самого гуманного суда США к хакерам, я вернувшись домой, сразу зачислил еще $10 с кредитки на карту Старбакса, чтобы не быть должным корпорации целых $1.70, мало ли.
Спасибо никто не сказал, зато был сделан не двусмысленный намек, что я совершил «fraud» и «malicious actions» и что они еще подумают, что со мной сделать.
А что мог сделать я? Я мог запустить ферму из фейковых гифт-карт, купленных в разных магазинах мира, нагенерить на них кучу денег и продавать на специальных промо сайтах с 50 процентной скидкой (чтобы не вызывать подозрения) за биткоины. Так, проработав год-другой, можно было бы высосать пару миллионов долларов из этой дружелюбной фирмы со сладким кофе.
До недавних пор мобильное приложение Starbucks для iOS содержало страшную уязвимость: пользовательские данные, включая пароль, хранились в программе в открытом виде. Но компания среагировала довольно оперативно.
Не так давно стало известно о том, что приложение Starbucks, созданное известной сетью кофеен для операционной системы iOS, могло запросто делиться направо и налево персональными данными всех скачавших программу пользователей. К чести Starbucks (особенно учитывая, что это не технологическая компания), закрывающее брешь обновление вышло довольно оперативно.
Конечно, это можно объяснить тем, что компания небедная и денег в подобных случаях не жалеет. Но тем не менее о существовании дыры в защите приложения стало известно где-то в декабре, а исправленная версия вышла уже в январе — в принципе это очень хороший результат. Ведь очень часто бывает так, что выпуску фикса к какому-нибудь ПО предшествуют многие месяцы, уходящие на всевозможные изучения, заключения, согласования, придирки и формальности.
Так что, если вы загружали приложение Starbucks для любого из своих ай-девайсов, следует немедленно поставить обновление, которое уже доступно в App Store. На всякий случай уточню: уязвимость присутствовала в версии 2.6.1, а в следующей, 2.6.2, доступной с 16 января для загрузки, уже исправлена. Ну а тех, кто обновиться не желает, предупреждаем: ваши имя, адрес, идентификационный номер устройства, геолокационные данные и даже пароль — все это может быть доступно злоумышленникам прямо сейчас.
Приложение Starbucks хранило пароли и другие пользовательские данные в открытом виде.Ну а для тех, кто вообще не в курсе, о каком приложении была речь, сообщаем: программа Starbucks позволяет привязать к смартфону или планшету карту клиента. В результате у вас в руках появляется мобильный кошелек, которым можно расплачиваться за кофе в любой кофейне сети по всему миру. Очень удобно. А теперь еще и безопасно :)
В программе лояльности Starbucks участвуют 16 миллионов постоянных клиентов. Рассказываем, какие механики помогли сети кофеен добиться успеха.
Starbucks любят за эмоции: клиент получает любимый напиток в фирменном стакане, на котором написано его имя. Гости возвращаются: им нравится персонализированный подход и широкий спектр вознаграждений для постоянных клиентов.
По данным Zinrelo , за последние два года количество участников программы привилегий Starbucks выросло на четверть. Постоянные клиенты генерируют 40% дохода компании.
Рассказываем подробнее, как устроена программа лояльности Starbucks и чем она привлекает постоянных посетителей.
Как работает программа лояльности Starbucks
Этой весной правила программы лояльности Starbucks за рубежом изменились и стали еще «дружелюбнее» для клиентов. В программе больше нет уровней: их было непросто достичь, и бонусы успевали сгореть.
В рамках обновленной программы лояльности клиенты сети по-прежнему копят звезды — внутреннюю «валюту», которую можно обменять на вознаграждения. За каждый потраченный доллар гость получает 2 звезды.
Бонусы по-прежнему сгорают, но клиенты успевают обменять их на подарки — теперь, чтобы получить подарок от заведения, вместо 125 звезд нужно накопить всего 25.
В России программа лояльности пока не менялась: уровни остаются, но подарок можно получить всего за 12 звезд.
Starbucks предлагает клиентам разнообразные вознаграждения:
Бесплатные напитки, десерты и другую еду.
За 25 звезд клиент получает сироп в напиток, за 50 — бесплатный напиток или выпечку, за 150 — авторский напиток или завтрак, за 200 — бесплатный обед.
Фирменные сувениры.
Брендированный стакан или пакет кофейных зерен достаются клиенту за 400 звезд.
Подарки в день рождения.
Клиент выбирает напиток или десерт.
Дополнительные бонусы за участие в игровых механиках.
За повторный заказ любимого напитка в течение недели клиент получает дополнительные звезды.
Персональные предложения.
Starbucks запоминает заказы клиентов и подбирает к любимому кофе клиента подходящий десерт или другую еду.
Мобильные технологии
Используя мобильные технологии, гости кофейни удобно взаимодействуют с брендом: копят бонусы и обменивают их на вознаграждения.
Пользователи видят в приложении накопленные звезды. Бонусы действуют шесть месяцев, а потом сгорают — накануне сеть отправляет клиенту пуш-напоминание.
Особенности получения карты
Получить подарочную карту starbucks может каждый клиент кофейни. Она может пополняться на любую сумму, после чего каждая покупка приносит 1 звезду. Бесплатный напиток либо блюдо на выбор покупатели получают за 12 звезд. Для того чтобы зарегистрировать карту starbucks, нужно обратиться сделать это виртуально в приложении либо в кофейне.
Как использовать
Карта лояльности starbucks дарит своему владельцу множество приятных бонусов. Что касается ее правильного использования, то для этого необходимо соблюдать ряд простых правил:
- Зарегистрироваться и пополнить счет на 500 рублей;
- Для оплаты покупки использовать только карту. Бонусы начисляются только по этой схеме;
- Бонусы действуют только в течение месяца;
- С помощью мобильного приложения либо на сайте можно просматривать все действия со счётом.
Чтобы активировать карту starbucks нужно пополнить счет. Можно привязать свою банковскую карту и с нее автоматически пополнять счет ежемесячно.
Уровни программы
Разобравшись с тем, как зарегистрировать карту starbucks, можно приступить к изучению программы. Сразу после регистрации покупателю присваивается Зеленый уровень карты. Бонусы сохраняются, если делать хотя бы одну покупку раз в месяц.
Золотой уровень получает клиент, накопивший 30 звезд. Здесь доступно еще больше бонусов, а именно:
- кофе starbucks либо другой напиток или продукт за 12 бонусов;
- акции по случаю Дня рождения;
- стильный золотой дизайн;
- уникальные акции с персональным подходом.
Особенности регистрации
После того, как пользователь активировал карту starbucks, нужно создать личный кабинет. После этого можно проводить любые манипуляции с картой, будь то авто пополнение либо просмотр истории и так далее.
Мобильное приложение
Сегодня starbucks подарочную карту можно активировать в программе. Пользоваться приложением очень удобно. Через него можно совершать любые действия с картой и контролировать состояние счета, а также наличие бонусов.
Популярные вопросы
На какую сумму можно пополнить счет?
500 рублей является минимальной стартовой суммой. После этого доступно пополнение счета на сумму 10-10000 рублей.
Что делать при потере или повреждении карты?
Для восстановления нужно связаться со службой поддержки.
Для этого приложения пока нет обзоров
Для этого приложения пока не указаны ссылки
Аналоги Starbucks Russia
Отзывы о приложении Starbucks Russia ( 502 )
Дали разъяснение и это очень приятно! Меняю оценку на 5 звёзд. Спасибо. Карту можно пополнить И в кафе. Ответить
И обо всех косяках знаете, столько отзывов негативных! Отписки только пишите бессмысленные. При этом ничего не исправляете Ответить
Не говорю о багах и неудобствах внутри Ответить
Итого; у вас успешная компания со своим вкусом Ответить
Обновлений не поступает, дизайн остается прежним уже очень долгое время.
Некрасиво, не функционально. Ответить
Написала в поддержку, сказали, что приложение *пока* некорректно работает на 7 айфоне, а до этого на 8 работало! (Правда тоже некорректно). Ответить
В общем, если бы чебуречная себе сделало такое приложение - я бы понял. Но никак не гигантская всемирно известная компания. Ответить
В общем могу продолжать еще очень и очень долго, но не вижу смысла. Но это просто ужас. Ответить
Проблема решилась ТОЛЬКО изменением пароля для входа. Еще прилу переставил. Не знаю, что из этого помогло.
Авторы приложения, если вы это читаете, сходите поучитесь куда-нибудь, пожалуйста. Ответить
2. Карта не добавляется в кошелёк. Все
3. Пополнить пластик я и в кассе могу. И даже быстрее. С какого, извините, боку пополнение должно занимать «какое-то время» в 21 веке? Я быстрее все чеки и кучу ненужной коммуникации получил, чем деньги на карте в приложении увидел.
Бесполезное так-то приложение получается. Можно сразу сносить после регистрации и пользоваться пластиком. Или даже регистрироваться через сайт. Ответить
Похоже, писал это все бариста в свободное время, пока было не много посетителей. Ответить
Сделаю вам достойное приложение
Тг: dvn_1 Ответить
Please, update the app.
Apple brand has more than 2 years model with “grey zone” on above of device. It is so uncomfortable to use it because app format is not user friendly for Apple devices design (and I think for another brands too).
You are big world company and couldn’t be open to digital real life. Ответить
Сделайте стрелку назад пониже!
Добавьте пожалуйста перевести деньги с одной карты на другую! Спамибо Ответить
Я надеялась посмотреть меню, цены, нормальную карту адресов, может скидки и купоны какие нибудь. А там надо какие то звёзды собирать и непонятно опять таки как это делать и зачем
Уничтожьте его уже или переделайте полностью Ответить
в приложении не удобно перемещаться, такое ощущение что его тестирования просто не было Ответить
Обновляла - не помогает Ответить
Эй, Starbucks! Ты не даёшь мне воспользоваться деньгами, которые я закинул на счёт. Это отвратительный сервис
Нельзя вставить пароль в поле ввода. Только вводить руками. Зачем вы отключили Copy-paste Все уже пользуются приложениями, хранящими пароли Ответить
При пополнении в форме оплаты поля не распознаются как поля для кредитной карты — autofill не работает. Пополнить через Apple Pay тоже нельзя.
iOS 12.2 Ответить
Ребята, исправляетесь, так нельзя! Ответить
I don’t want to bang on the side of this app. It’s inside my phone. Ответить
ОПЛАТА БУДЕТ ЗАЧИСЛЕНА ПОСЛЕ ПРОВЕРКИ РЕГИСТРАЦИИ!
ЭТО БЕСПЛАТНО И БЕЗОПАСНО! Ответить
Поздравляю, вы только что потеряли клиента. Я не собираюсь платить в 2 раза больше организации которая потом ещё будет меня обманывать. Ответить
Очень странный сервис, господа. Ответить
Обновление не нравится, приложение — позор. В вас так много ребят рисуют меню, дайте им ваше приложение. Может что получше сделают. Это же — позор. Ответить
Ну и капец некрасиво :( Ответить
Смените ИТ подрядчика! Ответить
Update: последние 2 дня не работает пополнение баланса с Карты сбера( в поддержке говорят что все ок. Ответить
И две звезды куда-то делись. Вообще зашибись Ответить
Нет поддержки Apple Pay! Ответить
Отзыв писала ещё когда был 6+ муже было приложение не адаптировано, а теперь уже на Х тоже убого выглядит. Исправьте Ответить
УПД 31.10: теперь невозможно привязать карту для оплаты. Кнопки в приложении просто неактивны. Предложили пополнить через сайт, там вылетает ошибка. В итоге, денег на карте нет. И как результат, покупок тоже нет. Очень радует, что рейтинг приложения стал 2 звезды. Это справедливо. Ответить
Обновление сломало все полность. Ответить
и хватит подкупать людей за их комментарий Ответить
UPD
с картой все получилось. теперь не корректно отображаются средства на карте при вызове ее из кошелька (APPLE PAY) Ответить
Читайте также: