Історія про те, як я «хакнув» Сільпо. Або як міг купувати продукти за ваші гроші
Багато хто вже в курсі, що я запустив застосунок для зберігання карток лояльності. Через це, в принципі, все й почалося. Посилання на нього apps.apple.com/...loyalty/id6753290043?l=uk
Він безкоштовний і без реклами. З крутих фішок — сам обирає потрібну вам картку, коли ви в магазині.
Почалось все з того що користувачі почали жалітися, що картку Сільпо не додасиш або, якщо й додасиш, то з часом вона перестає працювати, бо код динамічний. Поліз я розбиратися — так він динамічний, щей змінюється щоразу коли згортаю застосунок.
Сидів, ламав голову, і тут до мене прийшла думка: а якщо він насправді не такий вже й динамічний? Я просто скопіював номер рахунку, створив QR-код і пішов у Сільпо. Пікнув — і воно спрацювало. Думаю: топчік, зараз буду розповідати людям, як можна додати картку.
Проте далі було ще цікавіше. Коли я перейшов до оплати, система запропонувала зняти бонуси з мого рахунку. Я такий — супер, знімай. Тицяю — і воно знімає без жодних підтверджень. Я щасливий виходжу з Сільпо, і тут до мене доходить: це ж дира. Тобто, знаючи ваш код рахунку (а він, до речі, не дуже довгий), я можу знімати будь-які бонуси.
Я почав експериментувати: пробував відгадати номер, але каси Сільпо принципово відмовлялися їх приймати. В думках:

, приїхали.
Та одного з вечорів ми вийшли прогулятися з другом, ну і я поділився з ним проблемою — кажу, якось же ці коди формуються. А він такий:
— Ти ж у курсі, що номери карток Visa мають не просто набір цифр, а валідатори на сайтах знають, чи картка правильна чи ні. Тобто існує алгоритм, за яким вони створюються і валідуються. І тут мене осіяло.
Кілька десятків хвилин і я вже знав що таке Алгоритм Луна і принципі як він працює.
Створивши кілька карток, я помітив закономірність: у всіх спільний префікс — 024, а остання цифра — контрольна сума. Ще трішки часу — і вуаля: це алгоритм EAN-13 (варіація Luhn). Я нашвидкоруч пишу валідатор — і всі мої 3 картки проходять валідацію. Я сиджу, пишу і сяю.
Як ви зрозуміли, далі пишемо що? Правильно — генератор! Але не просто генератор, а такий, що відштовхується від заданих початкових цифр. Так ми можемо в принципі регулювати дату створення картки.
Пишемо генератор і йдемо спати,
Тестувати йдемо наступного дня.
Тестуємо першу картку — працює. Адреналінчик підскакує, ми навчилися генерувати правильні картки. Але, на жаль, вона виявилась пустою. Ну що ж, виходить, комусь закинули трохи бонусів.
Пробую другу — те саме, пуста.
Наступного дня пробую третю — вже краще, бонуси є, але їх надто мало і система не пропонує їх зняти. Моя віра в те що щось з цього може щось вийте буквально тримається на передбаченнях.

Пробуємо четверту — і це успіх на акаутні є грошики та і нам пропонують їх зняти.

і я їх успішно знімаю 🥳
Далі йдемо додому тішимося собою і пишем в підтримку Сільпо. За відчуттями, на початку мене не дуже серйозно сприймали, але після того, як я скинув чек із доказами, розмова почала в’язатися.
В результаті мене попросили не публікувати і не висловлюватися публічно до 1 січня 2026 року. Я люб’язно погодився, розумію, що на виправлення потрібен час. Через день мені знову написали і запропонували подаруночок. Хто я такий щоб відмовити — тож я знову погодився. Прислали цілу коробку різних смаколиків та 5 сертифікатів по 1000 грн кожен.

Висновки:

78 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів