Жена завязла в онлайновых играх на fomenko.ru, движимая несомненно достойной целью переплюнуть всех игроков по очкам. У меня был план, как вытащить ее из этой трясины – взять с нее обещание, что она бросит страдать ерундой сразу же, как окажется на первой строчке таблицы рекордов. Ради своей благородной цели мне потребовалось пострадать ерундой около получаса, о чем и пишу.

Подобная игрушка не может быть защищена абсолютно надежно, решение, сколько очков давать игроку, производится на его компьютере, и всегда можно создать программу, имитирующую идеально происходящую игру. А в нашем случае все оказалось намного проще – состояние игры (очки) отсылалось на сервер лишь однажды, в конце. Осталось лишь имитировать игру, завершившуюся с приятным глазу результатом…

Первым делом я попытался имитировать отсылку результатов игрушки, написав свою форму. Сервер ее вежливо проигнорировал. Очевидно, проверяется, с какой страницы была отослана форма с результатами, и левые данные обламывает. Молодцы, ребята. Это я про программистов – они действительно сделали все возможное, чтобы защититься от нехороших личностей вроде меня. Переходим на более низкий уровень…

На униховом роутере, который у меня звонит в интернет,
занимается почтой и прочими интересными вещами, запускаю tcpdump host fomenko.ru –I ppp0 –s 10000 –w file. Не вдаваясь в подробности: эта команда перехватывает всю информацию, которая через модем идет на fomenko.ru, и пишет ее в файл. Дальше сажусь играть, и срочно заваливаю все три жизни, случайно набрав 60 очков.

Ищу в файле строчку POST. Так надо. Вот что нахожу.
POST /cgi-bin/gamesst.cgi HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */*
Referer: http://fomenko.ru/games/plane/plane.htm?
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: fomenko.ru
Content-Length: 35
Connection: Keep-Alive

f=check&f2=867733&game=9&score=60

Все ясно, скрипт просят проверить, попал ли человек с 60-ю очками на призовое место. Тырю файл с Unix-сервера на виндовз (у меня там иксы не стоят). Копирую текст в блокнот. Заменяю количество очков на 150000, правлю Content-Length на нужное число (длина строки+1), запускаю telnet fomenko.ru 80, и отсылаю этот текст. В ответ сервер отсылает мне html-форму, имеющую поля ввода name, email, которые вводятся пользователем, и скрытые поля game=7, f=add, f2=случайный номер, score=число очков. Опять правлю информацию в блокноте, опять telnet. Ура, у меня – первое место! Аналогично вписываю туда жену.

Проверяю, обрабатываются ли теги. Не обрабатываются. Вписываю в таблицу очков имя Nerf Group и ссылку на нее. Заполняю всю таблицу этим мусором. Даже стыдно как-то стало. Бедные чуваки и
девчонки играли себе часами, выбивая эти рекорды, а я их всех туды. Люди, никогда так не делайте! 🙂

См… http://fomenko.ru/cgi-bin/gamesst.cgi?game=9

Оставить мнение

Check Also

На Pwn2Own 2019 успешно взломали продукты Apple, Oracle, VMware, а также автомобиль Tesla

На прошлой неделе в Канаде, в рамках конференции CanSecWest, прошло состязание Pwn2Own 201…