Как НЕ нужно проводить конкурсы на своём сайте / Вопросы безопасности в веб-технологиях

Наверное, многие уже слышали о сервисе ebaytoday.ru, который занимается пересылкой покупок с аукционов и интернет-магазинов США, Великобритании, Германии и Китая.

Так вот, они в преддверии 14 февраля решили сделать интересный конкурс. Условия очень простые: вы загружайте фотографию себя и своей второй половинки, а потом другие пользователи, принимающие участие в конкурсе, для каждого молодого человека подбирают девушку из 5 предложенных. Тем, кого угадают наибольшее количество раз приз — 2 Kindle Touch. А тому, кто угадает 20 пар в любой день — тоже Kindle Touch, но уже один. 

К всеобщему сожалению, запустив конкурс 10 февраля, они не оттестировали его как следует и до 13 числа голоса не засчитывались, поэтому 13 февраля все голоса были сброшены и конкурс запустился во второй раз, но уже рабочим. Такое бывает и иногда простительно, но не с такой обширной аудиторией, как у этого сервиса.



Накрутка голосов


При голосовании отправлялся POST-запрос на страницу со следующими данными:

woman — url фотографии мужчины (почему именно мужчины — не знаю, вероятно это как-то связано с общей грамотностью программиста)

man — url выбранной девушки

… и всё! Ни каких там csrf, токенов для проверки того, какие именно пары увидел пользователь в браузере и что он отправил — вобщем, сохраняем страницу, меняем значения полей на нужные и «жмакаем до посинения» на кнопочку «соединить пару». Поэтому, к сожалению, пара, которая заняла первое место — многим показалась какой-то странной из-за того, что никто её не видел.

Отгадывание пары

Тут дела обстоят более завуалированно, но не менее ужасно. Для всех загружаемых фотографий создавались thumbnail (превью), фотки загружались две — парня и девушки, следовательно — что? Правильно, смотрим полученный у фотографии заголовок Last-Modified и ищем девушку с такой же датой создания превью. Умных людей оказалось гораздо больше, чем думала дорогая администрация и поэтому благодаря 82 людям, кто отгадал 20 из 20 пар, пришлось делать второй этап.

Вот такой получился Валентинов конкурс… В который раз уже убеждаюсь в том, что в интернете нормальных конкурсов нету: или накручивают, или в результатах «свои» люди.

P.S.: рассказываю именно сейчас, чтобы никто не смог воспользоваться этими уязвимостями — конкурс уже окончен.[img]http://goo.gl/VBCiX[/img]




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