В Steam нашли эксплойт для бесконечного добавления денег на счёт — Valve выплатила скромную сумму за его обнаружение

Исследователь обнаружил эксплойт для накачивания деньгами кошелька в Steam. Valve выплатила скромное вознаграждение.

Исследователь безопасности под ником drbrix обнаружил эксплойт в Steam, который позволял злоумышленникам добавлять неограниченное число средств на счёт.

Valve использует платёжный сервис Smart2Pay. При добавлении средств в кошелёк Steam отправляется запрос (POST) и в нём передаётся число отправляемых средств. Естественно, он защищён, но исследователь нашёл способ, как его отредактировать.

Для эксплойта использовалась новая электронная почта, в адресе которой содержалась строка «amount100», где 100 — сумма, которую начислят на счёт при проведении транзакции.

Потенциальному злоумышленнику достаточно было просто добавлять деньги на счёт, как это делают многие другие пользователи. При этом сумма не важна — использующий эксплойт перехватывал бы запрос POST (данные, отправляемые на сервер), а затем редактировал его и указывал необходимую для зачисления сумму.

Вот оригинальный запрос:

MerchantID=1102&MerchantTransactionID=███&Amount=2000&Currency=

PLN&ReturnURL=https%3A%2F%2Fstore.steampowered.com%2Fpaypal%2Fsmart2pay%2F████%

2F&MethodID=12&Country=PL&CustomerEmail=brixamount100abc%40███████&CustomerName

=_drbrix_&SkipHPP=1&Description=Steam+Purchase&SkinID=101&Hash=██

После редактирования:

MerchantID=1102&MerchantTransactionID=██████&Amount2=000&Currency=PLN&ReturnURL=

https%3A%2F%2Fstore.steampowered.com%2Fpaypal%2Fsmart2pay%2F████%2F&MethodID=

12&Country=PL&CustomerEmail=brix&amount=100&ab=c%40██████████&CustomerName

=_drbrix_&SkipHPP=1&Description=Steam+Purchase&SkinID=101&Hash=█████████ 

Изменение в запросе Amount=2000 на Amount2=000 не влияло на хэш-подпись, которая использовалась для защиты запроса, но на сервер отправлялась необходимая злоумышленнику сумма.

Затем меняя:

CustomerEmail=brixamount100abc%40████  

На:

CustomerEmail=brix&amount=100&ab=c%40█████████  

Добавлялось поле с новым значением.

Достаточно было заплатить всего один доллар, чтобы получить крупную сумму средств на счёт в Steam

Такой трюк можно было провернуть только при указанной в имени почты «amount100».

Не известно, использовал ли кто-то ещё такой способ пополнения кошелька в Steam. На данный момент эксплойт исправили.

Valve выплатила за обнаружение эксплойта 7 500 долларов. Для сравнения, средняя годовая зарплата в США порядка 53 950 долларов.

Новости Борис Пилецкий К обсуждению