cat_meow_666
Green Team
Введение
Приветствую всех читателей статьи!Рад вернуться с 2017 года.
В данной статье я расскажу, как я обнаружил уязвимость в процессе попытки выиграть iPhone.
ДИСКЛЕЙМЕР: Все уязвимости, о которых было упомянуто в данной статье, были исправлены разработчиками организации. |
Forte bank - Aqqala Games
Данная игра располагалась в мобильном приложении Forte и запускалась в виде веб-страницы внутри iframe.
Авторизация - Insecure Direct Object References (Небезопасные прямые ссылки на объекты)
Была обнаружена возможность указания в поле user_id чужого номера телефона, а также имени и фамилии, и тем самым играть за других пользователей.
Регистрация - (Как не следует делать регистрацию в системе - ошибки, которые стоит избегать)
Регистрация в приложении была реализована исключительно для массовой загрузки клиентских данных в систему разработчиками, но я бы все равно хотел затронуть сверхразума который это написал
Здесь наиболее интересным является пароль, сгенерированный системой
Я впервые столкнулся с таким методом регистрации пользователей, и хотя система была взломана еще на этапе авторизации, я думаю, что разработчики осознавали, что делают.
Пароль был генерирован в front-end части приложения, используя номер телефона клиента в качестве основы. Конкретно, пароль состоял из слова "secr3tw0rd", за которым следовало base64-кодированное значение номера телефона.
Авторизация без ФИ - Зачем создавать пароль если она не используется?
В следующем запросе мы использовали сгенерированный пароль для доступа к клиентским данным банка. Хотя кажется, что ФИ - это малоинформативное значение, но представьте, что с помощью этих данных можно было бы создать свой собственный getcontact по базе Forte банка.
Мошенники и так знают наш номер и ФИО?
Вы задумывались о том, знают ли мошенники, с какого устройства вы последний раз авторизовались, из какой страны, города или даже точного адреса при авторизаций?
Конец - Что то еще?
Игровой процесс весьма прост: нужно убивать снеговиков, набирать очки и зарабатывать бонусы. Каждый игрок имеет право на 5 попыток в день.
Вам не хватают 5 попыток в день?
Вы простой смертный и набиваете еле как 15 000 очков, после его игра начинает дико лагать?
Хотя результат игры отправляется на бэкенд и шифруется, это не означает, что подмена результатов не работает.
Вывод:
Игра была проведена в период нового года. Она была очень плохо оптимизирована, все переменные были статическими. Один игрок выиграл с результатом в 4 миллиона очков, играя без остановки 26 дней подряд Я написал официальное письмо банку, который выпустил эту игру. Мне сказали, что рассмотрение ошибки займет 15 дней, хотя игра была отключена через 2 дня и запущена только через 7 дней без утечки клиентских данных. Однако никто так и не позвонил мне и не поблагодарил за сообщение об ошибке