Веселый конкурс

Lexx918 (lexx918@mail.ru)

Хакер, номер #085, стр. 085-074-1

История о том, как хакеры побеждают в конкурсах с ценными призами

К концу года на складах фирм, торгующих оргтехникой и другими железными вкусностями, скапливаются излишки товара, которые необходимо по быстрому сплавить. Ты можешь видеть множество предновогодних распродаж, скидок и прочих трюков, приманивающих жадных до халявы людей. Многие компании в рекламных целях организуют разнообразные конкурсы на своих сайтах, за победу и даже участие в которых дают ценные призы. Как правило эти конкурсы реализуются как попало, и нашему брату здесь есть, чем поживимся.

[поиск жертвы]

На самом деле, я довольно ленивый человек и поэтому никогда не участвовал в таких конкурсах, но в этот раз ко мне обратился старый приятель, который всерьез захотел поднять к новому 2006 году какой-то новый девайс нахаляву. Его стараниями было найдено несколько вполне солидных ресурсов. Мой рассказ об одном из них — самом привлекательном, с моей точки зрения, лишь от того, что создатели сайта хоть как-то позаботились о безопасности, чего нельзя сказать об остальных.

Итак, это было что-то вроде заурядного online-магазина с кучей компьютерного железа. Администрация проводила конкурс, в котором надо было сыграть в логическую игру. По результатам конкурса определялся один победитель, который получал очень даже солидный приз — ЖК монитор «Philips 170b6». Я не стал вчитываться в подробности акции, а просто порегался и сыграл несколько игр. Честно говоря, результат «вы на 11451 месте» меня не очень порадовал. Особенно, если учесть, что мониторов было не 12000, а всего один и с таким количеством очков мне не светило его заполучить.

[ловля на живца]

Игра была реализована в виде Flash-ролика. Стакан заполнялся разноцветными шариками, которые надо было убирать группами одного цвета. Чем больше группа, тем больше очков получал игрок. Как только все оставшиеся шарики не образовывают ни одной группы, игра заканчивается, а результат передается на сервер, где записывается, сравнивался с таблицей рекордов и в завершение всему пользователю возвращается число — место в таблице игроков. Полагается, что надо долго и упорно играть в игру, чтобы заработать как можно больше очков и получить заветный приз. Однако именно это не входило в мои планы. Мне предстояло разобраться с тем, как именно выглядит взаимодействие между сервером и нашим флешовым клиентом-игрой. Если я пойму, как реализована передача данных, то смогу ответить на вопрос, возможно ли фальсифицировать результаты игр и добиться требуемого результата. В принципе понятно, что flash-клиент передает серверу данные по протоколу HTTP, но вот как именно и каким методом – это вопрос. Вопрос, ответить на который можно банально отсниффав сетевую активность по время игры и подсчета очков.

Для этого я решил воспользоваться программой «Essential NetTools 3.2», однако навязывать тебе свой выбор я не буду, ты уже достаточно взрослый, чтобы самостоятельно определять инструмент, с которым будешь работать. Я настроил NetTools таким образом, чтобы программа слушала 127.0.0.1:81/TCP порт и показывала все данные, прилетающие туда. Затем в своем браузере я указал, что необходимо использовать проксик localhost:81 и принялся играть.

Содержание  Вперед на стр. 085-074-2
ttfb: 5.1870346069336 ms