Как-то раз мы с другом написали расширение для браузера, которое отслеживало все клиентские запросы к серверу на сайте vk.com. Наше расширение не просто отслеживало, а искало те запросы, где присутствовал ID пользователя.
Сначала запросов было очень много. Чтобы уменьшить, мы решили отправлять запросы повторно, а ответы сравнивали с предыдущим запросом. Если ответы были одинаковыми, скрипт нас об этом уведомлял. После чего мы ручками хотели ковырять, но с VK нам это делать не пришлось.
Запустив скрипт, нам ничего не пришло, мы стали просто бродить по сайту и делать разные действия. Через полчаса поисков мы ничего не нашли и просто забыли про расширение, оставив его активным.
Спустя около месяца зашел в свою закрытую группу и увидел там пару заявок. Приняв одну, у меня вылетело уведомление о том, что от сервера пришел такой же ответ. Поначалу я испугался, но потом, вспомнив про наш скрипт, быстро начал ковырять запрос. Спустя минут 20 добавил в группу первого левого пользователя Вконтакте. Созвонились с другом и начали делать плохие дела. Через 2 часа в нашей закрытой группе было более 50 000 человек. При этом участники группы для этого ничего не делали.
Были идеи не говорить об этом поддержке VK и накручивать сообщества за деньги. Но все же мы решили написать в поддержку и спустя пару часов баг исправили, а нам выплатили $10 тыс.
Немного о баге
Запрос отправлялся на адрес: vk.com/groupsedit.php
GET параметры: act=user_action&action=1&addr=IDЖЕРТВЫ&al=1&hash=1ed8fa73f2a7531178&id=IDГРУППЫ
При этом hash мог быть совершенно пустым, он вообще не учитывался при приеме на сервере.
Расширение мы решили не публиковать, чтобы его не использовали в плохих целях.
Автор: ept