-
Notifications
You must be signed in to change notification settings - Fork 1
bulls and cows
- Категория: PPC
- Стоимость: 300
- Автор: Артур Лисс
- Репозиторий
Со стороны интернет-казино «Quirky Casino» не похоже на организацию, у которой есть проблемы с деньгами: два месяца назад они запустили масштабную рекламную кампанию, а месяц назад разыграли пять квартир среди своих пользователей.
На самом же деле внутри компании не всё так гладко: источник, близкий к руководству, на условиях анонимности сообщил, что в последнем финансовом отчёте убытки компании оказались намного больше ожидаемых. По его словам, сейчас руководство охвачено паникой и пытается понять, где в финансовые прогнозы компании закралась ошибка.
Ситуация и правда неожиданная: любое серьёзное казино проверяет свои игры на прибыльность. Если в результате проверки оказывается, что у игроков есть выигрышная стратегия, то такую игру просто не выпускают. Неужели нашёлся игрок, оказавшийся умнее казино? Или, может быть, произошла банальная хакерская атака? Сложно сказать: казино не опубликовало никакой информации о произошедшем и вряд ли собирается.
На главной и единственной странице казино располагаются интерфейс для ввода и вывода денег и интерфейс игры в «Быки и коровы»:
Функция ввода денег не работает, а после нажатия на кнопку «Вывести деньги» пользователь видит сообщение о том, что сумма вывода не может быть меньше миллиона. Если игрок сдаётся, он теряет свою ставку, а если угадывает число, то может получить обратно какое-то количество денег в зависимости от количества затраченных попыток:
При виде кучи полей ввода можно отвлечься и начать проверять их на всевозможные уязвимости, но задание решается гораздо более понятным путём. Как намекает условие, ставки плохо сбалансированы, и при хорошей игре можно стабильно выигрывать у казино.
Накопить миллион можно и вручную, без всяких хитростей, но для этого надо довольно хорошо играть в «Быки и коровы»: ставки настроены так, что даже оптимальный алгоритм изредка будет терять деньги. Проще написать своего бота для игры или воспользоваться уже существующим. Например, следующий алгоритм игры, записанный в виде дерева, позволяет в среднем тратить на решение 5-6 попыток, а в небольшом числе случаев — 7: http://slovesnov.users.sourceforge.net/index.php?bullscows_tree,english,crushBullsCows.
Процесс ощутимо упростится, если заметить полезную уязвимость: начать новую игру можно, даже если текущая ещё не закончена. Конечно, в этот момент на странице нет кнопки «Начать игру», но если сохранить HTTP-запрос, посылаемый на сервер в результате нажатия этой кнопки, и повторить его в любой момент, то начнётся новая игра, а текущая не закончится. Повторить запрос можно, например, с помощью утилиты curl и функции Copy as cURL в Chrome DevTools.
С учётом того, что деньги списываются со счёта только в конце игры, эта уязвимость позволяет вообще не терять денег: если в рамках какой-то игры потрачено слишком много попыток, можно о ней забыть и начать новую. С такой техникой до миллиона вполне можно дойти и вручную.
Стоит отметить, что, хотя в казино нет системы регистрации, пользовательские сессии, как обычно, работают с помощью файлов cookie. Если в какой-то момент счёт опустел и играть стало невозможно, достаточно удалить cookie для сайта казино и получить новый профиль.
Тем или иным способом накопив миллион, нужно вывести его со счёта, и тогда казино покажет флаг: