понедельник, 28 марта 2011 г.

Steam Игры Бесплатно


Fail with honor rather than succeed by fraud
Вчера, отдыхая после рабочей недели и упоровшись нейрометаболическими стимуляторами, как всегда полез в Интернет, и что-то дернуло меня покопаться в устройстве системы приема платежей на сайте Steam. После получасовой возни нашел занятный баг. Оказалось, что у агрегатора, через которого Steam принимает оплату по WebMoney, существует недоработка в системе проверки платежей (причем этот же агрегатор используется Battle.net, то есть World of Warcraft и Startcraft 2 можно попробовать «оплатить» этим же способом).
Принцип довольно прост. Все основано на ошибке агрегатора платежей, через которого Steam принимает оплату по WebMoney. Итак, рассмотрим поэтапно:

1. Заходим в онлайн-магазин Steam через браузер и добавляем интересующие игры в корзину.

2. Выбираем купить для себя или в подарок, переходим на страницу выбора системы оплаты и выбираем WebMoney.

3. Тут нам понадобится плагин Tamper Data для FireFox или Charles Web Debugging Proxy. Запускаем плагин или Charles, убеждаемся, что он протоколирует запросы. Теперь нажимаем «Продолжить», на следующей страницу соглашаемся с правилами и нажимаем «Перейти на WebMoney».

4. На сайте вебмани нам понадобятся некоторые данные со страницы. Запишите их куда-нибудь.

И далее в html коде страницы

В итоге у Вас должны быть записаны следующие данные (естественно, цифры могут быть другие):

Valve-000000547900439471290000100001-974109215537805183
PAYMENTREFERENCE" type="hidden" value="547932353339"
9.99 WME

5. Теперь нам понадобится плагин Live HTTP Headers для FireFox. Сформируйте с помощью него следующий POST-запрос:

URL: https://na.gcsip.com/wpl/wpl

Тело запроса:

LMI_PAYMENT_NO=0&LMI_SYS_INVS_NO=ТУТ_ЛЮБОЕ_ЧИСЛО&LMI_SYS_TRANS_NO=ТУТ_ЛЮБОЕ_ЧИСЛО&LMI_SYS_TRANS_DATE=20110327 10:01:14&REF=VAR1&PAYMENTREFERENCE=VAR2&LMI_PAYMENT_AMOUNT=VAR3

Где вместо VAR1 необходимо подставить первое число, идущее после «Valve» (в данном случае это 000000547900439471290000100001), в VAR2 значение поля PAYMENTREFERENCE (в данном случае это 547932353339) и в VAR3 сумму платежа (просто число, без указания валюты, в данном случае это
9.99). Значение LMI_SYS_TRANS_DATE лучше поменять на текущее время для правдоподобности.
В итоге получим примерно такой запрос:

Если все сделано правильно, то после нажатия клавиши «Повтор» в браузере откроется страница с текстом «Yes».

6. И, наконец, в адресной строке браузера пишем
https://store.steampowered.com/paypal/success/VAR1/?REF=VAR2&RETURNMAC=VAR3, где VAR1 – это второе число, идущее после текста Valve (в данном случае 974109215537805183), а VAR2 – первое число (в данном случае 000000547900439471290000100001). VAR3 берется, например, из URL при обращении по адресу na.gcsip.com/orb/orb?ACTION=DO_START….&MAC=****.
Вот как это выглядит в Tamper Data:

А вот так в Charles:

Получаем URL следующего вида:

https://store.steampowered.com/paypal/success/974109215537805183/?REF=000000547900439471290000100001&RETURNMAC=FEGc4qxL0l1MJ8ryxdKiVlyYQ3EBdZMy%2Be969%2FoNep4%3D

Теоретически Steam может выдать, что необходимо открыть Steam-клиент или сообщить о ошибке проведения платежа, однако, буквально через минуту платеж будет засчитан и вы сможете пользоваться купленной игрой.

Для тех, кто плохо воспринимает подобные инструкции, прилагаю лог пакетов из Charles и видео (лучше смотреть в 720p непосредственно на ютубе).
Лог пакетов: скачать.

Автор: Kaimi

5 коммент.:

Vasyok комментирует...

http://www.youtube.com/watch?v=DmHhKBNNlQc

Vasyok комментирует...

Баг уже пофиксили вроде

UtroClickClick комментирует...

Жаль, хороший баг :)

Vasyok комментирует...

Не пока работает пробуйте

undrwtr комментирует...

серавно побанят всех кто спиздил.

Отправить комментарий