Накрутка голосования на хаkep.ru

Системы голосования на разных сайтах постоянно развиваются, и программеры пытаются закрыть лазейки , чтобы юзеры не могли накручивать счетчики. Предположим, что какой то сайт проводит опрос, и вам бы хотелось чтобы победила ваша версия ответа. Сейчас мы рассмотрим несколько вариантов накрутки систем голосования. Самое главное определить какая прога собирает голоса.
Самый простой вариант - это использование Cookies. Когда вы отдаете свой голос, сервер сохраняет всю инфу об этом в кукисе. Вот как это происходит:

1. Ваш комп отправляет пакет с ответом на вопрос.
2. Сервер обрабатывает ответ и присылает подтверждение.
3. Ваш комп сохраняет все кукисе.

Таким образом, когда вы попытаетесь проголосовать еще раз, сервер прочитает кукисы и определит, что вы уже голосовали, и не засчитает ваш голос. Так думают только неопытные и ленивые программеры.
Допустим вы используете Dial Up или ISDN, тогда для отправки и получения пакетов требуется время. И если в это время быстро долбить на Enter, то предыдущая посылка на клиентском компе считается незавершенной и отменяется, и начинает работать новая(т.е. последняя). Когда приходить ответ на первый запрос с подтверждением изменить кукисы, клиентский комп отклоняет эти запросы из-за несовпадения сессий. Следовательно быстро долбить Enter, то будут отправляться пакеты с нашими вариантами ответа, а сервер их обработает и добавит голоса. А вот ваш комп будет отклонять запросы(т.е. выполняются шаги 1 и 2, а 3 пропускается), пока не произойдет так, что вы не успели(или прекратили) отправить запрос и ваш браузер принял Cookies, полученный в результате последнего нажатия, и сохранил его, то дальнейшие нажатия станут невозможными. На выделенных линиях с большой скоростью передачи данных обмен пакетами происходит быстро, и можно не успеть кликнуть, а значит, файл Cookies будет создан. В этом случае переходим к следующему варианту.

Когда программисты замечают, что систему голосования накручивают предыдущим способом, они начинают создавать защиту. Простейший вариант - это сразу после отправки заблокировать кнопку Отправить(с помощью Java Script), то есть следующая попытка станет невозможной. Если вы владеете Java Script'ом, то сами без труда обойдете это препятствие. Но на это потребуется время и быстрого голосования не добиться. Так как вся инфа о голосовании сохраняется в кукисах, достаточно только его удалить. Они находятся по этому адресу ..:Documents and Settingsимя_пользователяCookies. Здесь лежат файлы формата имя_пользователя@адрес_сайта.txt. После знака "@" идет адрес сайта, с которого получен данный кукис. Находите нужный файл и удаляете его. После этого можно повторить попытку.

Наиболее жесткая защита организуется через IP-адрес. Например, если один проголосовали с адреса 123.456.789.000, то повторная попытка с этого IP будет невозможна. Если же у вас Dial Up или ISDN, то вам адрес назначается автоматически при каждом подключении. Достаточно заново законнектиться, и вам, скорее всего, дадут другой адрес, и можно голосовать еще раз. Если у вас выделенка, то единственным(на сколько я знаю) простым способом будет использование анонимных прокси-серверов. Сформируйте большой список прокси адресов, и через каждый отдавайте свой голос. Бывает так, что программеры используют IP и Cookies одновременно, так что не забывайте удалять кукисы. Применение защиты по IP -достаточно сложное дело. Очень много пользователей во всемирной паутине, которые работают через промежуточные сети, но попадают в инет через один IP. Например, Dial Up или корпоративные сети, где тысячи компов используют общий адрес. Если хотя бы один чел проголосует, остальные потеряют такую возможность, и поэтому нельзя говорить о какой-либо объективности опроса. Именно поэтому системы с подобной защитой по IP-адресу используют адреса только для определения источника накрутки, и хранят записи адресов недолго, чтобы другие могли тоже отдать свой голос. Через некоторое время можно без проблем проголосовать еще раз с того же адреса.
Следующий вариант требует хотя бы начальных знаний языка разметки страниц HTML. Для примера я выбрал наиболее сложный вариант, когда область голосования организована в виде фрейма внутри окна. Получается окно в окне. С точки зрения пользователя, это очень даже удобно, потому что перезагружается только фрейм, а не вся страница, что (если вы голосуете часто) значительно снизит затраты на трафик и сэкономит время.

Итак, заходим на сайт хаkep.ru. Программисты постарались и сделали хорошую систему голосования. Открываем исходники(Вид/Просмотр HTML кода). Обратите внимание на заголовок "Голосование" и "Архив материалов", это говорит о том, что надо искать фрагмент кода в это промежутке. Жмем Ctrl+F, вводим в поле слово "Голосование". Если голосование выполнено в виде фрейма, то искомая ссылка будет расположена внутри тега . Находим эту строчку, и видим в ней конструкцию следующего содержания:

src= "/code/common/vote3/include/iframe_vote.asp?site=SVT5"

В кавычках указан адрес голосования. Он начинается со слэша. Это говорит о том, что перед ним надо добавить адрес сайта, в данном случае хаkep.ru. Адрес системы голосования выглядит следующим образом:

http://www.xakep.ru/code/common/vote3/i … ?site=SVT5

Когда мы отдаем свой голос, мы перемещаемся по адресу указанному в теге . Теперь посмотрим на строки(чуть пониже), они содержат текст:

#
#

Тег говорит о том, что это поле ввода, содержимое которого будет передаваться скрипту. Параметр type="hidden" указывает на то, что поле скрытое. Но нас больше интересует вторая строка. Через этот параметр передаются IP адреса. В нашем случае 83.149.19.77. Наша задача изменить код страницы и отправить наш ответ. Для этого выполняем следующие шаги:
1. Полностью сохраняем страницу(в опере Файл/Сохранить с рисунками как)на своем компе. Самое главное чтобы были файлы "iframe_vote.htm" ; "scripts0.js" и "main0000.css".
2. Запускаем файл и голосуем.
3. Изменяем ip-адрес в теге и переходим на шаг 2.
Таким образом можно голосовать сколько угодно, и сервер всегда будет думать, что посылка идет с разных адресов. Несмотря на хорошую реализацию проведения опроса программеры ошиблись, определяя адрес отправителя не во время выполнения скрипта, а заранее, при формировании странички, которая является плодом творения ASP, и её код формируется динамически при обращении к серванту. УДАЧИ!

recon :: HackZona.Ru