Технологии · 2 min read · Oct 19, 2025
Как разработчик взломал Android-приложение, чтобы получить бесплатное пиво

Представьте себе, что вы взломали Android-приложение только для того, чтобы получить бесплатное пиво! Именно это сделал Куба Гретцкий, разработчик из Польши, и заработал себе охлажденное пиво.
Большинство пабов и ресторанов по всему миру предлагают бесплатные пива, ужины или купоны на обед в своих Android-приложениях, чтобы привлечь потенциальных клиентов. Гретцкий подумал, что стоит взломать такое предложение и получить что-то взамен. В посте на BreakDev.org Куба Гретцкий объясняет, как он взломал EatApp Android-приложение, чтобы обойти маяк и заработать себе бесплатное пиво.
По всей видимости, пабы и рестораны в Польше используют Bluetooth-маяки для проверки покупок в приложении на смартфоне, чтобы начислять бонусные баллы и награды. Гретцкий взломал сигналы трансляции и заработал себе пиво.
Гретцкий пишет в своем блоге: «в качестве примера, одно из мест предлагает вам бесплатное пиво за 5 баллов, и каждое купленное пиво дает вам 1 балл. Это дает вам бесплатное пиво за каждые 5 купленных пив в этом месте.
Вот как он это сделал
Bluetooth-маяки — это беспроводные датчики, которые передают радиосигналы, которые принимаются смартфонами для разблокировки микро-локации и контекстной осведомленности. Это помогает ресторанам и пабам проверять покупки, а также награждать клиентов баллами, предложениями и купонами. Гретцкий обнаружил, что большинство этих маяков в Польше производит компания под названием Estimote.
Гретцкий изучил документацию приложения Estimote, которая дала ему информацию о том, какую информацию передает маяк. Далее он получил доступ к библиотеке Android, чтобы упростить прослушивание трансляций маяков через любое приложение. Он затем обнаружил, что радиус трансляции составляет до 70 метров, так что теоретически значения, которые, вероятно, используются для авторизации наград, передаются по воздуху.
Как только он смог уточнить диапазон, он использовал приложение разработчика, чтобы собрать критически важную информацию от маяка. Затем он использовал HTTP/HTTPS прокси-сервер Fiddler, чтобы перехватить и расшифровать HTTPS-сообщения с телефона в ресторане, чтобы узнать, как приложение общается с сервером.
Как только Fiddler был настроен, он смог перехватить трафик публичного приложения, так как они не реализовали привязку сертификатов. Без маяка целевого ресторана поблизости Гретцкий использовал вместо этого place_id заведения, но не смог угадать связанный четырехзначный PIN-код.
Во время брутфорсинга четырехзначного PIN-кода его аккаунт был заблокирован на 30 минут после пяти неудачных попыток. Затем он установил VPN для перехвата, который использовался через 3G/4G на его мобильном телефоне, находясь в ресторане. Это потребовало небольшого обходного пути для подключения VPN на Android 6.0, но Гретцкий затем начал посещать рестораны, чтобы протестировать захват пакетов в реальном времени с приложением разработчика, добившись успеха в третьем заведении и собрав значения трансляции для UUID, Major number и Minor number.
Гретцкий выпустил простой скрипт для декодирования пакетов sslsplit в открытый текст, что позволило ему подтвердить, что значения были одинаковыми в пакете авторизации запроса, как и те, что были обнаружены в прямой трансляции с приложением разработчика.
Скорее всего, эти значения постоянно передаются по воздуху в каждом аффилированном ресторане, открывая множество уязвимостей для хакеров. Тем не менее, Гретцкий был доволен пивом, которое он заработал в процессе.
Он объяснил весь процесс в своем блоге здесь.
Get new posts in your inbox
No spam. Unsubscribe anytime.