- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток. В связи с большой паникой прошлой статьи [1] презентую вам вторую версию. Тут все просто, без соплей. Система лояльности — одна большая дыра. Проведя некоторые эксперименты, мы пришли к выводу, что большое количество сайтов, где используется такая система, напрочь лишено логики при попытке ее использовании.
Конечно, кто-то смог внедрить хоть простую, но защиту, а кто-то представляет себе интернет в таком виде:
Вообще, многие хакерские атаки происходят почти в таком виде. Это лишь в фильмах вам покажут кучу гаджетов будущего, функционал которых не имеет смысла в настоящем.
Перейдем к делу. Для примера я возьму несколько систем, где может существовать массовый карж.
Начнем с OBI.
Скажу сразу, для меня он мало изучен. Их смутные правила об использовании бонусов ставят меня в разные сомнения. Во-первых, у них есть несколько бонусных программ. По одной из них можно расплачиваться лишь в трех городах России, по другой – во всех. При этом, бонусы распространяются не на все, а только до 50% стоимости товара. Но и за полцены домик построить – это уже хорошо.
В общем, у ОБИ также есть приложение, где можно залогинить нашу карту и расплачиваться, генерируя штрих-код.
Переходим на страницу регистрации легким прикосновением волшебной палочки:
Попадаем на форму регистрации не нашей карты:
Что ж, заполняем ее. Кстати, тут система исчисления карт такая же, как и в «Перекрестке». Дабы ясно выразиться – Алгоритм Луна [2]. Я заполнил все данные, указал рандомный номер карты. В процессе через снифер отловил запрос регистрации.
Повторил его несколько сотен раз в цикле. Каких-либо ошибок не было. Сайт вполне работоспособно обрабатывал мои запросы и выдавал ответ в json:
"data":{"registration":null},"errors":[{"message":"u041eu0448u0438u0431u043au0430 u043fu0440u0438 u0437u0430u043fu043eu043bu043du0435u043du0438u0438 u0444u043eu0440u043cu044b.","type":"validation","locations":{"path":"/work/obiclub.ru/app/GraphQL/Mutation/Frontend/RegistrationMutation.php","line":109},"safe":true,"validation":{"cardnum":["u041du0435u043fu0440u0430u0432u0438u043bu044cu043du044bu0439 u043du043eu043cu0435u0440 u043au0430u0440u0442u044b. u041fu0440u043eu0432u0435u0440u044cu0442u0435 u043au043eu0440u0440u0435u043au0442u043du043eu0441u0442u044c u0432u0432u0435u0434u0435u043du043du044bu0445 u0434u0430u043du043du044bu0445."]}}]}
В переменной cardnum был следующий текст, что в переводе с греческого Unicode означает –
«Неправильный номер карты. Проверьте корректность введенных данных»
Интересно, что на все мои запросы с одного IP не было блокировки. Более того, сессия живет очень долго. Проверил спустя сутки – ответ был. Могли хотя бы куки обнулить, капчу ввести, а то сплошной «фейспалм». Написать софт не составит труда, вот только он попадет под
УК. РФ. ст.273, а это уже опасно!
Что ж, дом мы построили. Надо бы заправить наш автомобиль и покататься по городу. Я бы мог привести сюда пример с самыми популярными АЗС, но в виду кое-каких соображений не стану этого делать. Система у всех одна, но подход к ней разный, поэтому продемонстрирую на самой простой, мало известной АЗС.
AZS-ETALON.RU. Привлекла мое внимание тем, что находится в моем городе. Принцип действия аналогичен – есть карта лояльности; есть сайт, где регистрируем карту; есть приложение, через авторизацию в котором можно расплачиваться на кассе. Ну, тут вообще смешно.
Переходим на форму регистрации карты — lk.azs-etalon.ru/registration.php [3]
Заполняем любые данные, жмем «Взломать» «Зарегистрировать». Получаем ответ
«Неверный номер карты»
а это означает, что мы будем вводить следующий номер по счету и так далее, пока не найдем халявное топливо для нашего четырехколесного друга.
— Автоматизировать?
— Изи.
Ловим пакет на регистрацию. Получаем следующее
HTTP-HEADERS:
POST-DATA:
Приводим в удобный вид, подстраиваем под CURL, забиваем в цикл и ставим в поток. Сайт будет выдавать:
«РќРµРІРµСЂРЅС‹Р№ номер карты»
, что в переводе с немецкого CP1251 –
«Неверный номер карты»
Задаем условие на появление другого ответа и находим «гуд». Простейший брут готов.
Капчи нет, блокировки IP за большое количество запросов — нет, даже первичной проверки на ввод данных нет со стороны клиента. А, ладно. И так сойдет.
Пройдемся еще по одному зверю. Он гораздо крупнее других, но все также уязвим.
Лента… Просто — ЛЕНТА
Переходим по хететепес lk.lenta.com/authentication/login/activate-card:
Будем считать, что это была заранее валидная, не активированная карта. Нас просят ввести номер телефона
Что ж, вводим свою мобилу, далее остальные данные, включая пароль. Все, мы в Личном кабинете.
Тут как бы все аналогично предыдущим системам. Важно лишь отловить нужные запросы, затем повторять их в нужной последовательности.
Но опытном путем было найдена кое-какая нехорошая уязвимость. При вводе не верного кода подтверждения — что было? Да ничего, нас не пускало в ЛК. Это же логично, ребят.
Но опытном путем было проверено следующее! Были захвачены запросы на подтверждение кода, в котором все параметры были как на ладони:
{«code»:«12345667890»,«card»:«800011999193»,«phone»:«91234567789»}
Я не буду разжевывать, как я эксплуатировал эту уязвимость, но скажу вкратце. С помощью нее можно просто опустить code и мы всегда будем попадать в ЛК без подтверждения номера. А это означает, что номер мы можем указывать любой!
(С поддержкой ЛЕНТЫ я в данный момент пытаюсь связаться)
К чему все это? Давайте, подведем итоги.
Сервисов с системой лояльности очень много. Можно бесконечно искать их и «брутить» баллы. Если я скажу вам, что можно за эти баллы еще и летать на самолете?
У «Аэрофлота» и «S7» также есть бонусная система. В качестве баллов выступают мили. Зарабатывать мы можем их от, например, партнеров. У Аэрофлота их, кстати, около 2 тысяч. В том числе, почти все топовые супермаркеты, включая наш печально известный X5 Retail Group. Обменивать баллы на мили можно прямиком в ЛК того же «Перекрестка». Ну, и так почти во всех других сервисах. К слову, данный факт кражи миль у авиакомпании зафиксирован официально. Громкое дело, не обошедшееся без жертв.
В итоге, все не так просто, как кажется. Есть люди, которые живут за счет этих баллов. Ну, а если эти балы формально принадлежат вам, то кто-то сидит на вашей шее. Кулхацкеры могут бесплатно питаться, одеваться, кататься на авто, летать по городам, ну и многое другое.
P.S. Спасибо, что аж сразу несколько сотрудников безопасности из «X5» со мной связались. С одним состоялась больше дискуссия по поводу «чьи же все-таки это баллы — клиентов или Перекрестка», чем вопрос о безопасности системы. Но, я думаю, они все исправят, так как вся СБ уже осведомлена. Оперативно, что ж. Им стоит отдать должное. Главное, чтоб исправились.
Ну, и вот вам опросик.
Автор: molodoy_hacker
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/bezopasnost/297926
Ссылки в тексте:
[1] прошлой статьи: https://habr.com/post/427905/
[2] Алгоритм Луна: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D1%83%D0%BD%D0%B0
[3] lk.azs-etalon.ru/registration.php: http://lk.azs-etalon.ru/registration.php
[4] Источник: https://habr.com/post/428650/?utm_campaign=428650
Нажмите здесь для печати.